<!DOCTYPE html>
<!-- Created with https://packager.40code.com/ -->
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
  <!-- We only include this to explicitly loosen the CSP of various packager environments. It does not provide any security. -->
  <meta http-equiv="Content-Security-Policy" content="default-src * 'self' 'unsafe-inline' 'unsafe-eval' data: blob:">
  <title>CatmelonFight</title>
  <style>
    body {
      color: #ffffff;
      font-family: sans-serif;
      overflow: hidden;
      margin: 0;
      padding: 0;
    }
    :root, body.is-fullscreen {
      background-color: #000000;
    }
    [hidden] {
      display: none !important;
    }
    h1 {
      font-weight: normal;
    }
    a {
      color: inherit;
      text-decoration: underline;
      cursor: pointer;
    }

    #app, #loading, #error, #launch {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
    }
    .screen {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      cursor: default;
      user-select: none;
      -webkit-user-select: none;
      background-color: #000000;
    }
    #launch {
      background-color: rgba(0, 0, 0, 0.7);
      cursor: pointer;
    }
    .green-flag {
      width: 80px;
      height: 80px;
      padding: 16px;
      border-radius: 100%;
      background: rgba(255, 255, 255, 0.75);
      border: 3px solid hsla(0, 100%, 100%, 1);
      display: flex;
      justify-content: center;
      align-items: center;
      box-sizing: border-box;
    }
    #loading {
      
    }
    .progress-bar-outer {
      border: 1px solid currentColor;
      height: 10px;
      width: 200px;
      max-width: 200px;
    }
    .progress-bar-inner {
      height: 100%;
      width: 0;
      background-color: currentColor;
    }
    .loading-text, noscript {
      font-weight: normal;
      font-size: 36px;
      margin: 0 0 16px;
    }
    .loading-image {
      margin: 0 0 16px;
    }
    #error-message, #error-stack {
      font-family: monospace;
      max-width: 600px;
      white-space: pre-wrap;
      user-select: text;
      -webkit-user-select: text;
    }
    #error-stack {
      text-align: left;
      max-height: 200px;
      overflow: auto;
    }
    .control-button {
      width: 2rem;
      height: 2rem;
      padding: 0.375rem;
      margin-top: 0.5rem;
      margin-bottom: 0.5rem;
      user-select: none;
      -webkit-user-select: none;
      cursor: pointer;
      border: 0;
      border-radius: 4px;
    }
    .control-button-highlight:hover {
      background: #ff4c4c26;
    }
    .control-button-highlight.active {
      background: #ff4c4c59;
    }
    .fullscreen-button {
      background: white;
    }
    .standalone-fullscreen-button {
      position: absolute;
      top: 0;
      right: 0;
      background-color: rgba(0, 0, 0, 0.5);
      border-radius: 0 0 0 4px;
      padding: 4px;
      cursor: pointer;
    }
    .sc-canvas {
      cursor: auto;
    }
    .sc-monitor-root[data-opcode^="data_"] .sc-monitor-value-color {
      background-color: #ff8c1a;
    }
    .sc-monitor-row-value-outer {
      background-color: #fc662c;
    }
    .sc-monitor-row-value-editing .sc-monitor-row-value-outer {
      background-color: #e25b27;
    }
    
  </style>
  <meta name="theme-color" content="#000000">
  <link rel="icon" href="">
</head>
<body>
  <div id="app"></div>

  <div id="launch" class="screen" hidden title="Click to start">
    <div class="green-flag">
      <svg viewBox="0 0 16.63 17.5" width="42" height="44">
        <defs><style>.cls-1,.cls-2{fill:#4cbf56;stroke:#45993d;stroke-linecap:round;stroke-linejoin:round;}.cls-2{stroke-width:1.5px;}</style></defs>
        <path class="cls-1" d="M.75,2A6.44,6.44,0,0,1,8.44,2h0a6.44,6.44,0,0,0,7.69,0V12.4a6.44,6.44,0,0,1-7.69,0h0a6.44,6.44,0,0,0-7.69,0"/>
        <line class="cls-2" x1="0.75" y1="16.75" x2="0.75" y2="0.75"/>
      </svg>
    </div>
  </div>

  <div id="loading" class="screen">
    <noscript>Enable JavaScript</noscript>
    
    
    
  </div>

  <div id="error" class="screen" hidden>
    <h1>Error</h1>
    <details>
      <summary id="error-message"></summary>
      <p id="error-stack"></p>
    </details>
  </div>

  <script src="script.js"></script>
  <script>
    const appElement = document.getElementById('app');
    const launchScreen = document.getElementById('launch');
    const loadingScreen = document.getElementById('loading');
    const loadingInner = document.getElementById('loading-inner');
    const errorScreen = document.getElementById('error');
    const errorScreenMessage = document.getElementById('error-message');
    const errorScreenStack = document.getElementById('error-stack');

    const handleError = (error) => {
      console.error(error);
      if (!errorScreen.hidden) return;
      errorScreen.hidden = false;
      errorScreenMessage.textContent = '' + error;
      let debug = error && error.stack || 'no stack';
      debug += '\nUser agent: ' + navigator.userAgent;
      errorScreenStack.textContent = debug;
    };
    const setProgress = (progress) => {
      if (loadingInner) loadingInner.style.width = progress * 100 + '%';
    };
    const interpolate = (a, b, t) => a + t * (b - a);

    try {
      setProgress(0.1);

      const scaffolding = new Scaffolding.Scaffolding();
      scaffolding.width = 640;
      scaffolding.height = 360;
      scaffolding.resizeMode = "preserve-ratio";
      scaffolding.editableLists = false;
      scaffolding.usePackagedRuntime = true;
      scaffolding.setup();
      scaffolding.appendTo(appElement);

      const vm = scaffolding.vm;
      window.scaffolding = scaffolding;
      window.vm = scaffolding.vm;
      window.Scratch = {
        vm,
        renderer: vm.renderer,
        audioEngine: vm.runtime.audioEngine,
        bitmapAdapter: vm.runtime.v2BitmapAdapter,
        videoProvider: vm.runtime.ioDevices.video.provider
      };

      scaffolding.setUsername("player####".replace(/#/g, () => Math.floor(Math.random() * 10)));
      scaffolding.setAccentColor("#ff4c4c");

      try {
        scaffolding.addCloudProvider(new Scaffolding.Cloud.WebSocketProvider(["wss://clouddata.turbowarp.org","wss://clouddata.turbowarp.xyz"], "p4-0.5428778049343099"));
      } catch (error) {
        console.error(error);
      }

      vm.setTurboMode(false);
      if (vm.setInterpolation) vm.setInterpolation(true);
      if (vm.setFramerate) vm.setFramerate(60);
      if (vm.renderer.setUseHighQualityRender) vm.renderer.setUseHighQualityRender(false);
      if (vm.setRuntimeOptions) vm.setRuntimeOptions({
        fencing: false,
        miscLimits: true,
        maxClones: 9999999999,
      });
      if (vm.setCompilerOptions) vm.setCompilerOptions({
        enabled: true,
        warpTimer: false
      });
      if (vm.renderer.setMaxTextureDimension) vm.renderer.setMaxTextureDimension(2048);

      if (typeof ScaffoldingAddons !== 'undefined') {
        ScaffoldingAddons.run(scaffolding, {"gamepad":false,"pointerlock":false,"specialCloudBehaviors":false,"unsafeCloudBehaviors":false,"pause":false});
      }

      scaffolding.setExtensionSecurityManager({
        getSandboxMode: () => 'unsandboxed',
        canLoadExtensionFromProject: () => true
      });
      for (const extension of ["data:text/javascript;,(function(Scratch)%20%7B%20%2F%2F%20Name%3A%20Clones%20Plus%0A%2F%2F%20ID%3A%20lmsclonesplus%0A%2F%2F%20Description%3A%20Expansion%20of%20Scratch's%20clone%20features.%0A%2F%2F%20By%3A%20LilyMakesThings%20%3Chttps%3A%2F%2Fscratch.mit.edu%2Fusers%2FLilyMakesThings%2F%3E%0A%2F%2F%20License%3A%20MIT%20AND%20LGPL-3.0%0A%0A%2F*%20generated%20l10n%20code%20*%2FScratch.translate.setup(%7B%22fi%22%3A%7B%22_Clones%2B%22%3A%22Kloonit%20%2B%22%2C%22_%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22kloonin%2C%20jonka%20%5BINPUTB%5D%20on%20%5BINPUTC%5D%2C%20%5BINPUTA%5D%22%2C%22_%5BINPUT%5D%20of%20main%20sprite%22%3A%22p%C3%A4%C3%A4hahmon%20%5BINPUT%5D%22%2C%22_clone%20count%22%3A%22kloonien%20m%C3%A4%C3%A4r%C3%A4%22%2C%22_clone%20count%20of%20%5BINPUT%5D%22%3A%22hahmon%20%5BINPUT%5D%20kloonien%20m%C3%A4%C3%A4r%C3%A4%22%2C%22_clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%20exists%3F%22%3A%22onko%20olemassa%20klooni%2C%20jonka%20%5BINPUTA%5D%20on%20%5BINPUTB%5D%3F%22%2C%22_costume%20%23%22%3A%22asusteen%20numero%22%2C%22_costume%20name%22%3A%22asusteen%20nimi%22%2C%22_create%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22luo%20klooni%2C%20jonka%20%5BINPUTA%5D%20on%20%5BINPUTB%5D%22%2C%22_delete%20clones%20in%20%5BINPUT%5D%22%3A%22poista%20hahmon%20%5BINPUT%5D%20kloonit%22%2C%22_delete%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22poista%20kloonit%2C%20joiden%20%5BINPUTA%5D%20on%20%5BINPUTB%5D%22%2C%22_direction%22%3A%22suunta%22%2C%22_is%20clone%3F%22%3A%22olenko%20klooni%3F%22%2C%22_myself%22%3A%22min%C3%A4%20itse%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20clones%20with%20%5BINPUTC%5D%20set%20to%20%5BINPUTD%5D%22%3A%22aseta%20muuttaja%20%5BINPUTA%5D%20arvoon%20%5BINPUTB%5D%20klooneilla%2C%20joiden%20%5BINPUTC%5D%20on%20%5BINPUTD%5D%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20main%20sprite%22%3A%22aseta%20p%C3%A4%C3%A4hahmon%20muuttuja%20%5BINPUTA%5D%20arvoon%20%5BINPUTB%5D%22%2C%22_size%22%3A%22koko%22%2C%22_stop%20scripts%20in%20%5BINPUT%5D%22%3A%22pys%C3%A4yt%C3%A4%20koodit%20hahmossa%20%5BINPUT%5D%22%2C%22_stop%20scripts%20in%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22pys%C3%A4yt%C3%A4%20koodit%20klooneissa%2C%20joiden%20%5BINPUTA%5D%20on%20%5BINPUTB%5D%22%2C%22_stop%20scripts%20in%20main%20sprite%22%3A%22pys%C3%A4yt%C3%A4%20p%C3%A4%C3%A4hahmon%20koodit%22%2C%22_touching%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%3F%22%3A%22koskettaako%20kloonia%2C%20jonka%20%5BINPUTA%5D%20on%20%5BINPUTB%5D%3F%22%2C%22_touching%20main%20sprite%3F%22%3A%22koskettaako%20p%C3%A4%C3%A4hahmoa%3F%22%2C%22_variable%20%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22kloonin%2C%20jonka%20%5BINPUTB%5D%20on%20%5BINPUTC%5D%2C%20muuttuja%20%5BINPUTA%5D%22%2C%22_variable%20%5BINPUT%5D%20of%20main%20sprite%22%3A%22p%C3%A4%C3%A4hahmon%20muuttuja%20%5BINPUT%5D%22%2C%22_volume%22%3A%22%C3%A4%C3%A4nenvoimakkuus%22%2C%22_when%20I%20start%20as%20a%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22kun%20aloitan%20kloonina%2C%20jonka%20%5BINPUTA%5D%20on%20%5BINPUTB%5D%22%2C%22_x%20position%22%3A%22x-sijainti%22%2C%22_y%20position%22%3A%22y-sijainti%22%7D%2C%22hu%22%3A%7B%22_myself%22%3A%22magad%22%7D%2C%22ja%22%3A%7B%22_Clones%2B%22%3A%22%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3%20%2B%22%2C%22_%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22%E5%A4%89%E6%95%B0%5BINPUTB%5D%E3%81%8C%5BINPUTC%5D%E3%81%AB%E3%81%95%E3%82%8C%E3%81%9F%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3%E3%81%AE%5BINPUTA%5D%22%2C%22_%5BINPUT%5D%20of%20main%20sprite%22%3A%22%E3%83%A1%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%97%E3%83%A9%E3%82%A4%E3%83%88%E3%81%AE%5BINPUT%5D%22%2C%22_clone%20count%22%3A%22%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3%E6%95%B0%22%2C%22_clone%20count%20of%20%5BINPUT%5D%22%3A%22%5BINPUT%5D%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3%E6%95%B0%22%2C%22_clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%20exists%3F%22%3A%22%E5%A4%89%E6%95%B0%5BINPUTA%5D%E3%81%8C%5BINPUTB%5D%E3%81%AB%E3%81%95%E3%82%8C%E3%81%9F%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3%E3%81%8C%E5%AD%98%E5%9C%A8%E3%81%99%E3%82%8B%22%2C%22_costume%20%23%22%3A%22%E3%82%B3%E3%82%B9%E3%83%81%E3%83%A5%E3%83%BC%E3%83%A0%E3%81%AE%E7%95%AA%E5%8F%B7%22%2C%22_costume%20name%22%3A%22%E3%82%B3%E3%82%B9%E3%83%81%E3%83%A5%E3%83%BC%E3%83%A0%E3%81%AE%E5%90%8D%E5%89%8D%22%2C%22_create%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%E5%A4%89%E6%95%B0%5BINPUTA%5D%E3%82%92%5BINPUTB%5D%E3%81%AB%E3%81%97%E3%81%A6%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3%E3%82%92%E4%BD%9C%E3%82%8B%22%2C%22_delete%20clones%20in%20%5BINPUT%5D%22%3A%22%5BINPUT%5D%E3%81%AE%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%22%2C%22_delete%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%E5%A4%89%E6%95%B0%5BINPUTA%5D%E3%81%8C%5BINPUTB%5D%E3%81%AB%E3%81%95%E3%82%8C%E3%81%9F%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%22%2C%22_direction%22%3A%22%E6%96%B9%E5%90%91%22%2C%22_is%20clone%3F%22%3A%22%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3%22%2C%22_myself%22%3A%22%E8%87%AA%E5%88%86%E8%87%AA%E8%BA%AB%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20clones%20with%20%5BINPUTC%5D%20set%20to%20%5BINPUTD%5D%22%3A%22%E5%A4%89%E6%95%B0%5BINPUTC%5D%E3%82%92%5BINPUTD%5D%E3%81%AB%E3%81%95%E3%82%8C%E3%81%9F%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3%E3%81%AE%E5%A4%89%E6%95%B0%5BINPUTA%5D%E3%82%92%5BINPUTB%5D%E3%81%AB%E3%81%99%E3%82%8B%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20main%20sprite%22%3A%22%E3%83%A1%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%97%E3%83%A9%E3%82%A4%E3%83%88%E3%81%AE%E5%A4%89%E6%95%B0%5BINPUTA%5D%E3%82%92%5BINPUTB%5D%E3%81%AB%E3%81%99%E3%82%8B%22%2C%22_size%22%3A%22%E3%82%B5%E3%82%A4%E3%82%BA%22%2C%22_stop%20scripts%20in%20%5BINPUT%5D%22%3A%22%5BINPUT%5D%E3%81%AE%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%E6%AD%A2%E3%82%81%E3%82%8B%22%2C%22_stop%20scripts%20in%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%E5%A4%89%E6%95%B0%5BINPUTA%5D%E3%81%8C%5BINPUTB%5D%E3%81%AB%E3%81%95%E3%82%8C%E3%81%9F%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3%E3%81%AE%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%E6%AD%A2%E3%82%81%E3%82%8B%22%2C%22_stop%20scripts%20in%20main%20sprite%22%3A%22%E3%83%A1%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%97%E3%83%A9%E3%82%A4%E3%83%88%E3%81%AE%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%E6%AD%A2%E3%82%81%E3%82%8B%22%2C%22_touching%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%3F%22%3A%22%E5%A4%89%E6%95%B0%5BINPUTA%5D%E3%81%8C%5BINPUTB%5D%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9F%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3%E3%81%AB%E8%A7%A6%E3%82%8C%E3%81%9F%22%2C%22_touching%20main%20sprite%3F%22%3A%22%E3%83%A1%E3%82%A4%E3%83%B3%E3%81%AE%E3%82%B9%E3%83%97%E3%83%A9%E3%82%A4%E3%83%88%E3%81%AB%E8%A7%A6%E3%82%8C%E3%81%9F%22%2C%22_variable%20%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22%E5%A4%89%E6%95%B0%5BINPUTB%5D%E3%81%8C%5BINPUTC%5D%E3%81%AB%E3%81%95%E3%82%8C%E3%81%9F%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3%E3%81%AE%E5%A4%89%E6%95%B0%5BINPUTA%5D%22%2C%22_variable%20%5BINPUT%5D%20of%20main%20sprite%22%3A%22%E3%83%A1%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%97%E3%83%A9%E3%82%A4%E3%83%88%E3%81%AE%E5%A4%89%E6%95%B0%5BINPUT%5D%22%2C%22_volume%22%3A%22%E9%9F%B3%E9%87%8F%22%2C%22_when%20I%20start%20as%20a%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%E5%A4%89%E6%95%B0%5BINPUTA%5D%E3%81%8C%5BINPUTB%5D%E3%81%AB%E3%81%95%E3%82%8C%E3%81%A6%E3%82%AF%E3%83%AD%E3%83%BC%E3%83%B3%E3%81%95%E3%82%8C%E3%81%9F%E3%81%A8%E3%81%8D%22%2C%22_x%20position%22%3A%22X%20%E4%BD%8D%E7%BD%AE%22%2C%22_y%20position%22%3A%22Y%E4%BD%8D%E7%BD%AE%22%7D%2C%22ko%22%3A%7B%22_Clones%2B%22%3A%22%EB%B3%B5%EC%A0%9C%EB%B3%B8%20%ED%94%8C%EB%9F%AC%EC%8A%A4%22%2C%22_%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22%5BINPUTB%5D%EC%9D%B4(%EA%B0%80)%20%5BINPUTC%5D%EC%9D%B8%20%EB%B3%B5%EC%A0%9C%EB%B3%B8%EC%9D%98%20%5BINPUTA%5D%22%2C%22_%5BINPUT%5D%20of%20main%20sprite%22%3A%22%EC%9B%90%EB%B3%B8%20%EC%8A%A4%ED%94%84%EB%9D%BC%EC%9D%B4%ED%8A%B8%EC%9D%98%20%5BINPUT%5D%22%2C%22_clone%20count%22%3A%22%EB%B3%B5%EC%A0%9C%EB%B3%B8%20%EA%B0%9C%EC%88%98%22%2C%22_clone%20count%20of%20%5BINPUT%5D%22%3A%22%5BINPUT%5D%EC%9D%98%20%EB%B3%B5%EC%A0%9C%EB%B3%B8%20%EA%B0%9C%EC%88%98%22%2C%22_clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%20exists%3F%22%3A%22%5BINPUTA%5D%EC%9D%B4(%EA%B0%80)%20%5BINPUTB%5D%EC%9D%B8%20%EB%B3%B5%EC%A0%9C%EB%B3%B8%EC%9D%B4%20%EC%A1%B4%EC%9E%AC%ED%95%98%EB%8A%94%EA%B0%80%3F%22%2C%22_costume%20%23%22%3A%22%EB%AA%A8%EC%96%91%20%EB%B2%88%EC%A7%B8%22%2C%22_costume%20name%22%3A%22%EB%AA%A8%EC%96%91%20%EC%9D%B4%EB%A6%84%22%2C%22_create%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%5BINPUTA%5D%EC%9D%B4(%EA%B0%80)%20%5BINPUTB%5D%EC%9D%B8%20%EC%83%81%ED%83%9C%EB%A1%9C%20%EB%B3%B5%EC%A0%9C%ED%95%98%EA%B8%B0%22%2C%22_delete%20clones%20in%20%5BINPUT%5D%22%3A%22%5BINPUT%5D%EC%9D%98%20%EB%B3%B5%EC%A0%9C%EB%B3%B8%20%EC%82%AD%EC%A0%9C%ED%95%98%EA%B8%B0%22%2C%22_delete%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%5BINPUTA%5D%EC%9D%B4(%EA%B0%80)%20%5BINPUTB%5D%EC%9D%B8%20%EB%B3%B5%EC%A0%9C%EB%B3%B8%20%EC%82%AD%EC%A0%9C%ED%95%98%EA%B8%B0%22%2C%22_direction%22%3A%22%EB%B0%A9%ED%96%A5%22%2C%22_is%20clone%3F%22%3A%22%EB%B3%B5%EC%A0%9C%EB%B3%B8%EC%9D%B8%EA%B0%80%3F%22%2C%22_myself%22%3A%22%EB%82%98%20%EC%9E%90%EC%8B%A0%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20clones%20with%20%5BINPUTC%5D%20set%20to%20%5BINPUTD%5D%22%3A%22%5BINPUTC%5D%EC%9D%B4(%EA%B0%80)%20%5BINPUTD%5D%EC%9D%B8%20%EB%B3%B5%EC%A0%9C%EB%B3%B8%EC%9D%98%20%5BINPUTA%5D%EC%9D%84(%EB%A5%BC)%20%5BINPUTB%5D(%EC%9C%BC)%EB%A1%9C%20%EC%A0%95%ED%95%98%EA%B8%B0%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20main%20sprite%22%3A%22%EC%9B%90%EB%B3%B8%20%EC%8A%A4%ED%94%84%EB%9D%BC%EC%9D%B4%ED%8A%B8%EC%9D%98%20%5BINPUTA%5D%EC%9D%84(%EB%A5%BC)%20%5BINPUTB%5D(%EC%9C%BC)%EB%A1%9C%20%EC%A0%95%ED%95%98%EA%B8%B0%22%2C%22_size%22%3A%22%ED%81%AC%EA%B8%B0%22%2C%22_stop%20scripts%20in%20%5BINPUT%5D%22%3A%22%5BINPUT%5D%20%EB%A9%88%EC%B6%94%EA%B8%B0%22%2C%22_stop%20scripts%20in%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%5BINPUTA%5D%EC%9D%B4(%EA%B0%80)%20%5BINPUTB%5D%EC%9D%B8%20%EB%B3%B5%EC%A0%9C%EB%B3%B8%20%EB%A9%88%EC%B6%94%EA%B8%B0%22%2C%22_stop%20scripts%20in%20main%20sprite%22%3A%22%EC%9B%90%EB%B3%B8%20%EC%8A%A4%ED%94%84%EB%9D%BC%EC%9D%B4%ED%8A%B8%EC%9D%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20%EB%A9%88%EC%B6%94%EA%B8%B0%22%2C%22_touching%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%3F%22%3A%22%5BINPUTA%5D%EC%9D%B4(%EA%B0%80)%20%5BINPUTB%5D%EC%9D%B8%20%EB%B3%B5%EC%A0%9C%EB%B3%B8%EC%97%90%20%EB%8B%BF%EC%95%98%EB%8A%94%EA%B0%80%3F%22%2C%22_touching%20main%20sprite%3F%22%3A%22%EC%9B%90%EB%B3%B8%20%EC%8A%A4%ED%94%84%EB%9D%BC%EC%9D%B4%ED%8A%B8%EC%97%90%20%EB%8B%BF%EC%95%98%EB%8A%94%EA%B0%80%3F%22%2C%22_variable%20%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22%5BINPUTB%5D%EC%9D%B4(%EA%B0%80)%20%5BINPUTC%5D%EC%9D%B8%20%EB%B3%B5%EC%A0%9C%EB%B3%B8%EC%9D%98%20%5BINPUTA%5D%22%2C%22_variable%20%5BINPUT%5D%20of%20main%20sprite%22%3A%22%EC%9B%90%EB%B3%B8%20%EC%8A%A4%ED%94%84%EB%9D%BC%EC%9D%B4%ED%8A%B8%EC%9D%98%20%5BINPUT%5D%22%2C%22_volume%22%3A%22%EC%9D%8C%EB%9F%89%22%2C%22_when%20I%20start%20as%20a%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%5BINPUTA%5D%EC%9D%B4(%EA%B0%80)%20%5BINPUTB%5D%EC%9D%B8%20%EC%83%81%ED%83%9C%EB%A1%9C%20%EB%B3%B5%EC%A0%9C%EB%90%98%EC%97%88%EC%9D%84%20%EB%95%8C%22%2C%22_x%20position%22%3A%22x%EC%A2%8C%ED%91%9C%22%2C%22_y%20position%22%3A%22y%EC%A2%8C%ED%91%9C%22%7D%2C%22nl%22%3A%7B%22_Clones%2B%22%3A%22Klonen%2B%22%2C%22_%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22%5BINPUTA%5D%20van%20kloon%20met%20%5BINPUTB%5D%20%3D%20%5BINPUTC%5D%22%2C%22_%5BINPUT%5D%20of%20main%20sprite%22%3A%22%5BINPUT%5D%20van%20originele%20sprite%22%2C%22_clone%20count%22%3A%22aantal%20klonen%22%2C%22_clone%20count%20of%20%5BINPUT%5D%22%3A%22aantal%20klonen%20van%20%5BINPUT%5D%22%2C%22_clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%20exists%3F%22%3A%22kloon%20met%20%5BINPUTA%5D%20%3D%20%5BINPUTB%5D%20bestaat%3F%22%2C%22_costume%20%23%22%3A%22uiterlijknummer%22%2C%22_costume%20name%22%3A%22uiterlijknaam%22%2C%22_create%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22maak%20een%20kloon%20met%20%5BINPUTA%5D%20%3D%20%5BINPUTB%5D%22%2C%22_delete%20clones%20in%20%5BINPUT%5D%22%3A%22verwijder%20klonen%20van%20%5BINPUT%5D%22%2C%22_delete%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22verwijder%20klonen%20met%20%5BINPUTA%5D%20%3D%20%5BINPUTB%5D%22%2C%22_direction%22%3A%22richting%22%2C%22_is%20clone%3F%22%3A%22is%20kloon%3F%22%2C%22_myself%22%3A%22mijzelf%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20clones%20with%20%5BINPUTC%5D%20set%20to%20%5BINPUTD%5D%22%3A%22maak%20variabele%20%5BINPUTA%5D%20%5BINPUTB%5D%20voor%20klonen%20met%20%5BINPUTC%5D%20%3D%20%5BINPUTD%5D%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20main%20sprite%22%3A%22maak%20variabele%20%5BINPUTA%5D%20%5BINPUTB%5D%20voor%20originele%20sprite%22%2C%22_size%22%3A%22grootte%22%2C%22_stop%20scripts%20in%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22stop%20scripts%20in%20klonen%20met%20%5BINPUTA%5D%20%3D%20%5BINPUTB%5D%22%2C%22_stop%20scripts%20in%20main%20sprite%22%3A%22stop%20scripts%20in%20originele%20sprite%22%2C%22_touching%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%3F%22%3A%22raak%20ik%20kloon%20met%20%5BINPUTA%5D%20%3D%20%5BINPUTB%5D%3F%22%2C%22_touching%20main%20sprite%3F%22%3A%22raak%20ik%20originele%20sprite%3F%22%2C%22_variable%20%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22variabele%20%5BINPUTA%5D%20van%20kloon%20met%20%5BINPUTB%5D%20%3D%20%5BINPUTC%5D%22%2C%22_variable%20%5BINPUT%5D%20of%20main%20sprite%22%3A%22variabele%20%5BINPUT%5D%20van%20originele%20sprite%22%2C%22_when%20I%20start%20as%20a%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22wanneer%20ik%20als%20kloon%20start%20met%20%5BINPUTA%5D%20%3D%20%5BINPUTB%5D%22%2C%22_x%20position%22%3A%22x-positie%22%2C%22_y%20position%22%3A%22y-positie%22%7D%2C%22pl%22%3A%7B%22_clone%20count%22%3A%22liczba%20klon%C3%B3w%22%2C%22_costume%20name%22%3A%22nazwa%20kostiumu%22%2C%22_direction%22%3A%22kierunek%22%2C%22_is%20clone%3F%22%3A%22jest%20klonem%3F%22%2C%22_size%22%3A%22wielko%C5%9B%C4%87%22%2C%22_volume%22%3A%22g%C5%82o%C5%9Bno%C5%9B%C4%87%22%2C%22_x%20position%22%3A%22pozycja%20x%22%2C%22_y%20position%22%3A%22pozycja%20y%22%7D%2C%22ru%22%3A%7B%22_Clones%2B%22%3A%22%D0%9A%D0%BB%D0%BE%D0%BD%D1%8B%2B%22%2C%22_%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22%5BINPUTA%5D%20%D0%BA%D0%BB%D0%BE%D0%BD%D0%B0%20%D1%81%20%5BINPUTB%5D%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%5BINPUTC%5D%22%2C%22_%5BINPUT%5D%20of%20main%20sprite%22%3A%22%5BINPUT%5D%20%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%81%D0%BF%D1%80%D0%B0%D0%B9%D1%82%D0%B0%22%2C%22_clone%20count%22%3A%22%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20%D0%BA%D0%BB%D0%BE%D0%BD%D0%BE%D0%B2%22%2C%22_clone%20count%20of%20%5BINPUT%5D%22%3A%22%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE%20%D0%BA%D0%BB%D0%BE%D0%BD%D0%BE%D0%B2%20%5BINPUT%5D%22%2C%22_clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%20exists%3F%22%3A%22%D0%BA%D0%BB%D0%BE%D0%BD%20%D1%81%20%5BINPUTA%5D%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%5BINPUTB%5D%20%D1%81%D1%83%D1%89%D0%B5%D1%81%D1%82%D0%B2%D1%83%D0%B5%D1%82%3F%22%2C%22_costume%20%23%22%3A%22%D0%BA%D0%BE%D1%81%D1%82%D1%8E%D0%BC%20%23%22%2C%22_costume%20name%22%3A%22%D0%B8%D0%BC%D1%8F%20%D0%BA%D0%BE%D1%81%D1%82%D1%8E%D0%BC%D0%B0%22%2C%22_create%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C%20%D0%BA%D0%BB%D0%BE%D0%BD%20%D1%81%20%5BINPUTA%5D%20%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%B9%20%D0%B2%20%5BINPUTB%5D%22%2C%22_delete%20clones%20in%20%5BINPUT%5D%22%3A%22%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C%20%D0%BA%D0%BB%D0%BE%D0%BD%D1%8B%20%5BINPUT%5D%22%2C%22_delete%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C%20%D0%BA%D0%BB%D0%BE%D0%BD%D1%8B%20%D1%81%20%5BINPUTA%5D%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%5BINPUTB%5D%22%2C%22_direction%22%3A%22%D0%BD%D0%B0%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%22%2C%22_is%20clone%3F%22%3A%22%D0%BA%D0%BB%D0%BE%D0%BD%3F%22%2C%22_myself%22%3A%22%D1%81%D0%B0%D0%BC%D0%BE%D0%B3%D0%BE%20%D1%81%D0%B5%D0%B1%D1%8F%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20clones%20with%20%5BINPUTC%5D%20set%20to%20%5BINPUTD%5D%22%3A%22%D0%B7%D0%B0%D0%B4%D0%B0%D1%82%D1%8C%20%5BINPUTA%5D%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%5BINPUTB%5D%20%D0%B4%D0%BB%D1%8F%20%D0%BA%D0%BB%D0%BE%D0%BD%D0%BE%D0%B2%20%5BINPUTC%5D%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%5BINPUTD%5D%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20main%20sprite%22%3A%22%D0%B7%D0%B0%D0%B4%D0%B0%D1%82%D1%8C%20%5BINPUTA%5D%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%5BINPUTB%5D%20%D0%B4%D0%BB%D1%8F%20%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%81%D0%BF%D1%80%D0%B0%D0%B9%D1%82%D0%B0%22%2C%22_size%22%3A%22%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%22%2C%22_stop%20scripts%20in%20%5BINPUT%5D%22%3A%22%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C%20%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B%20%5BINPUT%5D%22%2C%22_stop%20scripts%20in%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C%20%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B%20%D0%B2%20%D0%BA%D0%BB%D0%BE%D0%BD%D0%B0%D1%85%20%D1%81%20%5BINPUTA%5D%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%5BINPUTB%5D%22%2C%22_stop%20scripts%20in%20main%20sprite%22%3A%22%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C%20%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B%20%D0%B2%20%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%BC%20%D1%81%D0%BF%D1%80%D0%B0%D0%B9%D1%82%D0%B5%22%2C%22_touching%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%3F%22%3A%22%D0%BA%D0%B0%D1%81%D0%B0%D0%B5%D1%82%D1%81%D1%8F%20%D0%BA%D0%BB%D0%BE%D0%BD%D0%B0%20%D1%81%20%5BINPUTA%5D%20%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%B9%20%D0%B2%20%5BINPUTB%5D%3F%22%2C%22_touching%20main%20sprite%3F%22%3A%22%D0%BA%D0%B0%D1%81%D0%B0%D0%B5%D1%82%D1%81%D1%8F%20%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%81%D0%BF%D1%80%D0%B0%D0%B9%D1%82%D0%B0%3F%22%2C%22_variable%20%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F%20%5BINPUTA%5D%20%D0%BA%D0%BB%D0%BE%D0%BD%D0%B0%20%D1%81%20%5BINPUTB%5D%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%5BINPUTC%5D%22%2C%22_variable%20%5BINPUT%5D%20of%20main%20sprite%22%3A%22%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F%20%5BINPUT%5D%20%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%81%D0%BF%D1%80%D0%B0%D0%B9%D1%82%D0%B0%22%2C%22_volume%22%3A%22%D0%BE%D0%B1%D1%8A%D1%91%D0%BC%22%2C%22_when%20I%20start%20as%20a%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0%20%D1%8F%20%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%20%D0%BA%D0%B0%D0%BA%20%D0%BA%D0%BB%D0%BE%D0%BD%20%D1%81%20%5BINPUTA%5D%20%D0%B7%D0%B0%D0%B4%D0%B0%D0%BD%D0%BD%D0%BE%D0%B9%20%D0%B2%20%5BINPUTB%5D%22%2C%22_x%20position%22%3A%22%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D1%8F%20x%22%2C%22_y%20position%22%3A%22%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D1%8F%20y%22%7D%2C%22uk%22%3A%7B%22_clone%20count%22%3A%22%D0%BA%D1%96%D0%BB%D1%8C%D0%BA%D1%96%D1%81%D1%82%D1%8C%20%D0%BA%D0%BB%D0%BE%D0%BD%D1%96%D0%B2%22%2C%22_is%20clone%3F%22%3A%22%D0%BA%D0%BB%D0%BE%D0%BD%3F%22%7D%2C%22zh-cn%22%3A%7B%22_Clones%2B%22%3A%22%E5%85%8B%E9%9A%86%20%2B%22%2C%22_%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22%E8%8E%B7%E5%8F%96%5BINPUTB%5D%E4%B8%BA%5BINPUTC%5D%E7%9A%84%E5%85%8B%E9%9A%86%E4%BD%93%E7%9A%84%5BINPUTA%5D%22%2C%22_%5BINPUT%5D%20of%20main%20sprite%22%3A%22%E8%A7%92%E8%89%B2%E6%9C%AC%E4%BD%93%E7%9A%84%5BINPUT%5D%22%2C%22_clone%20count%22%3A%22%E5%85%8B%E9%9A%86%E4%BD%93%E6%95%B0%E9%87%8F%22%2C%22_clone%20count%20of%20%5BINPUT%5D%22%3A%22%5BINPUT%5D%E7%9A%84%E5%85%8B%E9%9A%86%E4%BD%93%E6%95%B0%E9%87%8F%22%2C%22_clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%20exists%3F%22%3A%22%E5%AD%98%E5%9C%A8%5BINPUTA%5D%E4%B8%BA%5BINPUTB%5D%E7%9A%84%E5%85%8B%E9%9A%86%E4%BD%93%EF%BC%9F%22%2C%22_costume%20%23%22%3A%22%E9%80%A0%E5%9E%8B%E7%BC%96%E5%8F%B7%22%2C%22_costume%20name%22%3A%22%E9%80%A0%E5%9E%8B%E5%90%8D%E7%A7%B0%22%2C%22_create%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%E5%88%9B%E5%BB%BA%E5%85%8B%E9%9A%86%E4%BD%93%E5%B9%B6%E5%B0%86%E5%AE%83%E7%9A%84%20%5BINPUTA%5D%20%E8%AE%BE%E4%B8%BA%20%5BINPUTB%5D%22%2C%22_delete%20clones%20in%20%5BINPUT%5D%22%3A%22%E5%88%A0%E9%99%A4%5BINPUT%5D%E7%9A%84%E6%89%80%E6%9C%89%E5%85%8B%E9%9A%86%E4%BD%93%22%2C%22_delete%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%E5%88%A0%E9%99%A4%5BINPUTA%5D%E4%B8%BA%5BINPUTB%5D%E7%9A%84%E5%85%8B%E9%9A%86%E4%BD%93%22%2C%22_direction%22%3A%22%E6%96%B9%E5%90%91%22%2C%22_is%20clone%3F%22%3A%22%E6%98%AF%E5%85%8B%E9%9A%86%E4%BD%93%EF%BC%9F%22%2C%22_myself%22%3A%22%E8%87%AA%E5%B7%B1%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20clones%20with%20%5BINPUTC%5D%20set%20to%20%5BINPUTD%5D%22%3A%22%E5%B0%86%E6%BB%A1%E8%B6%B3%5BINPUTC%5D%E4%B8%BA%5BINPUTD%5D%E7%9A%84%E5%85%8B%E9%9A%86%E4%BD%93%E7%9A%84%E5%8F%98%E9%87%8F%5BINPUTA%5D%E8%AE%BE%E4%B8%BA%5BINPUTB%5D%22%2C%22_set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20main%20sprite%22%3A%22%E8%AE%BE%E7%BD%AE%E8%A7%92%E8%89%B2%E6%9C%AC%E4%BD%93%E7%9A%84%E5%8F%98%E9%87%8F%5BINPUTA%5D%E4%B8%BA%5BINPUTB%5D%22%2C%22_size%22%3A%22%E5%A4%A7%E5%B0%8F%22%2C%22_stop%20scripts%20in%20%5BINPUT%5D%22%3A%22%E5%81%9C%E6%AD%A2%5BINPUT%5D%E4%B8%AD%E7%9A%84%E8%84%9A%E6%9C%AC%22%2C%22_stop%20scripts%20in%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%E5%81%9C%E6%AD%A2%5BINPUTA%5D%E4%B8%BA%5BINPUTB%5D%E7%9A%84%E5%85%8B%E9%9A%86%E4%BD%93%E7%9A%84%E8%84%9A%E6%9C%AC%22%2C%22_stop%20scripts%20in%20main%20sprite%22%3A%22%E5%81%9C%E6%AD%A2%E8%A7%92%E8%89%B2%E6%9C%AC%E4%BD%93%E4%B8%AD%E7%9A%84%E8%84%9A%E6%9C%AC%22%2C%22_touching%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%3F%22%3A%22%E7%A2%B0%E5%88%B0%20%5BINPUTA%5D%E4%B8%BA%20%5BINPUTB%5D%E7%9A%84%E5%85%8B%E9%9A%86%E4%BD%93%EF%BC%9F%22%2C%22_touching%20main%20sprite%3F%22%3A%22%E7%A2%B0%E5%88%B0%E8%A7%92%E8%89%B2%E6%9C%AC%E4%BD%93%EF%BC%9F%22%2C%22_variable%20%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%3A%22%E8%8E%B7%E5%8F%96%5BINPUTB%5D%E4%B8%BA%5BINPUTC%5D%E7%9A%84%E5%85%8B%E9%9A%86%E4%BD%93%E7%9A%84%E5%8F%98%E9%87%8F%5BINPUTA%5D%22%2C%22_variable%20%5BINPUT%5D%20of%20main%20sprite%22%3A%22%E8%A7%92%E8%89%B2%E6%9C%AC%E4%BD%93%E7%9A%84%E5%8F%98%E9%87%8F%5BINPUT%5D%22%2C%22_volume%22%3A%22%E9%9F%B3%E9%87%8F%22%2C%22_when%20I%20start%20as%20a%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%3A%22%E5%BD%93%E6%88%91%E4%BD%9C%E4%B8%BA%E5%85%8B%E9%9A%86%E4%BD%93%E5%90%AF%E5%8A%A8%EF%BC%8C%E4%B8%94%E6%BB%A1%E8%B6%B3%5BINPUTA%5D%E4%B8%BA%5BINPUTB%5D%22%2C%22_x%20position%22%3A%22x%E5%9D%90%E6%A0%87%22%2C%22_y%20position%22%3A%22y%E5%9D%90%E6%A0%87%22%7D%7D)%3B%2F*%20end%20generated%20l10n%20code%20*%2F(function%20(Scratch)%20%7B%0A%20%20%22use%20strict%22%3B%0A%0A%20%20const%20menuIconURI%20%3D%0A%20%20%20%20%22data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAZ4AAAGeCAYAAACkfGcPAAAAAXNSR0IArs4c6QAAIABJREFUeF7tndl1HEeWQEFZ0ZovmTDGTHsiM9oTjTFjRbe84JwEWWChUJUZEW%2BJt9z%2B6B%2FGet9yEVWg%2BO2N%2F0GgGYHvf%2F3%2BPdKVv%2F3zP98inYezQMCaAAlvTZj1XQlEk4rW5ZGTFknWiUAA8USIAmeYIlBVLlMQ7gYjpVVyzNtFAPHsIs%2B%2BlwQQzCWi0wEIScaP2XYEEI8dW1aeJIBoJoFNDkdEk8AYbkYA8ZihZeEzAkgmRn4goxhx6HYKxNMt4pvui2g2gZ%2FcFhFNAmP4EgHEs4SNSSMEkM0IpbhjkFDc2GQ%2FGeLJHsFA50c0gYJhcBREZAC16ZKIp2ngta6NbLRI5loHCeWKV7TTIp5oEUlwHmSTIEiOR0RCjrCLbIV4igTS%2BhrIxppwjfWRUI04Wt8C8VgTTrw%2BskkcvABHR0IBghD0CIgnaGB2Hgvh7KRfb28EVC%2Bm0hshHinBIvORTZFABr8GEgoeIKfjIR4n0BG3QTYRo9LnTEioT6wfb4p4GsYe4TQMeuArI6DAwTE6GuIxAhtxWYQTMSqc6UYAAfXJBcTTINYIp0GQC10RARUK5ourIJ6iMUY2RQPb7FpIqGbAEU%2BxuCKcYgHlOu8EEFCtREA8ReKJcIoEkmucEkBANRIE8SSPI8JJHkCOv0QAAS1hCzMJ8YQJxdxBEM4cL0bXJICAcsYV8SSMG9JJGDSObEYA%2BZihNVsY8Zih1V8Y4egzZcU6BBBQnlgingSxQjgJgsQRwxBAQGFC8fIgiCdwjBBO4OBwtPAEEFDcECGeoLFBOkEDw7FSEUA%2BMcOFeILFBeEECwjHKUEAAcUKI%2BIJEg%2BEEyQQHKM0AQQUI7yIJ0AckE6AIHCENgSQz%2F5QI56NMUA4G%2BGzdXsCCGhfCiCeTeyRzibwbAuBOwLIZ086IB5n7gjHGTjbQWCAAAIagKQ4BPEowjxbCuE4gWYbCAgIICABvImpiGcC1upQpLNKjnkQ8CeAfOyZIx5jxkjHGDDLQ8CAAPIxgHr%2F3Zrt8n1XRzh9Y8%2FN6xBAQDax5MVjwBXpGEBlSQhsIoB89MEjHkWmCEcRJktBIBgBBKQXEMSjxBLpKIFkGQgEJoB8dIKDeBQ4Ih0FiCwBgSQEkI88UIhHyBDpCAEyHQIJCSAfWdAQzyI%2FhLMIjmkQKEQAAa0FE%2FEscEM6C9CYAoGiBJDPfGARzyQzpDMJjOEQaEAA%2BcwFGfFM8EI6E7AYCoFmBJDPeMARzwArhDMAiSEQgMA7AQR0nQiI54IR0rlOIkZAAAKfCSCf84xAPCd8kA7tBAIQWCWAfF6TQzwv2CCd1XJjHgQgcCOAfJ7nAuJ5wgXp0DggAAEtAsjnK0nE88AE6WiVG%2BtAAAK8fHjxXFYB0rlExAAIQGCRAC%2BfX%2BB48fxkgXQWq4lpEIDAMAHk8wNVe%2FEgnOGaYSAEIKBEoLuAWosH6ShVEctAAALTBDrLp614kM50nTABAhBQJtBVPi3Fg3SUq4flIACBZQId5dNOPEhnuT6YCAEIGBHoJp9W4kE6RlXDshCAgJhAJ%2Fm0EQ%2FSEdcFC0AAAsYEusinhXiQjnG1sDwEIKBGoIN8yosH6ajVAwtBAAJOBKrLB%2FE4JRLbQAACEBglgHhGSQUcx2snYFA4EgQgMESgsnzKvniQzlBuMwgCEAhMoKp8SooH6QSuJI4GAQhMEagon3LiQTpTOc1gCEAgAYFq8iklHqSToII4IgQgsESgknzKiAfpLOUykyAAgUQEqsinhHiQTqLK4agQgICIQAX5pBcP0hHlMJMhAIGEBLLLB%2FEkTDqODAEI9CaAeDbGn9fORvhsDQEIbCWQWT5pXzxIZ2vOszkEIBCAQFb5pBQP0gmQ8RwBAhAIQSCjfNKJB%2BmEyHUOAQEIBCKQTT6IJ1DycBQIQAACKwQQzwq1wTm8dgZBMQwCEGhHIJN80rx4kE67OuLCEIDAJIEs8kkhHqQzmX0MhwAE2hLIIJ%2Fw4kE6beuHi0MAAosEossH8SwGlmkQgAAEohJAPILI8NoRwGMqBCDQmkBk%2BYR98SCd1jXD5SEAAQUCUeWDeBSCyxIQgAAEIhJAPBNR4bUzAYuhEIAABE4IRJRPuBcP0qGGIAABCOgSiCafUOJBOrrJxmoQgAAEbgQiyQfxkJcQgAAEGhBAPE%2BCzGunQeZzRQhAYCuBKPIJ8%2BJBPFvzkc0hAIEGBBDPXZCRToOM54oQgEAIAhHks%2F3Fg3RC5CKHgAAEGhHYLR%2FE0yjZuCoEIACBg0Br8fDaoQggAAEI7CGwUz7bXjxIZ0%2BysSsEIACBG4Fd8kE85CAEIACBpgRaiYfXTtMs59oQgEA4Ajvks%2BXFg3jC5R4HggAEmhJoIR6k0zS7uTYEIBCWgLd8XF88SCds3nEwCECgOQFP%2BSCeHcn2P%2F%2F%2Btev%2F%2FteOE9Te857v2U1hXzsPuN0UgZLiafPaGW16MylBg%2FxKy4Lz%2FS4wn8lQxhYh4CUftxdPafFYN8HHpO7aFL0537h35V2kmXKNcQKlxFNSOruaYDcJReHMa2i8ezEyNQEP%2Bbi8eEqIJ2IDjCKhRzbSF0IG1gd76T1TtycOX5VACfG4S%2Beqaa00i6s1o2Xgyh1n7zDKZOYso2vOntV6%2FMwdrc%2FC%2BjIC%2FOLPOz9r%2BZi%2BeFylM9O0RhvFzJqydLeZPXrP2d1nuVydY3a92fN6jb%2B6p9c52GeewFUONoytpXxqiOcqaZ6l4Vkiraw3n%2Bo%2BM7QLZpXNs3OsruVDbn0XbebrJ2HmCIHRPGwW15TicXvtjCbNiHwka40k%2BM4xGkUj5XN%2FBulaO1mO7K3Be2QfxsgIzOZhs7haycfsxZNCPEfKHok0m3yyVN8zW6NgOnDSjo4Gd%2B0zsd4PAiv53CyeqcSTRjqdClBaMCtF2onv2V2l7OFoQ2A1p5vF00I%2BJi8exGNTJ6JVpcWyWqSiQxeaLOVfCEWIq0jyuVksU4jHTTqrT%2BUQWe98CI1CkRSq83XDbqcRh7CXS3YwST43jKO2fNRfPIgnYAFqFIqkUAMi2XokjXhsvUCBzSX53DB%2BocXjKh1ePHPVLy0WSaHOnbTHaGk8elCyu6Ukn5vGTlM%2Bqi8exDNWJ%2F%2F3r398DPzvP%2F8emyQdJS0WSaFKzz45%2F57v2VQ39q8OIY3JJBeG3xGQ5HPTuCGeW%2F5Ikse4Ckebn1tj1CiWgLw1ON%2FHwF1GGnExzuWSy0tyuWnMQorH%2FbUTUD7aTfCx4EVNUaNYJMWq2L2sOd%2BOKuI9c1%2BN2Mzsx9i1v8Nz49Y4XlryUfuorat4vJqg%2BKdyrWLZJJ8dnN0EpBUbhDJOQJLHjeMVSjzbpLPx1bOzES41RM1ikRTteGv4GBmB9XEY0xeQZnwWGLebIsnh5rHSkI%2FKi2e7eI6qkSTSRNVFaYJLLyDNgnHgHZG1qYA04zOR0y2HSvK3eZxCiCeEdBxePlGb4JSAtAtGUrwn3S4DazMBaceopVUGLi3JXWIk%2Fvd6xC%2BeUOIxevlkaYSXzVC7YCTF%2B6I3ZGJ9yXug%2Fz0doh2n1XNUnifJXeKzVzzhpGMgnmyN8LIZahaNpHifNLWMrC95rzRvzRit7N9hjiR3ic97hkg%2BchO9eMKJR5JMhRrh7SpPvwzXKhpF1lmF85gyqr98oBWnDhJZuaMkf4kN4vnIOUkiPSRulUb48qdxjcJR4l2JterrRyNGKw25yxxJ%2FhKbfeKp%2Btqp1gi%2FNEONopEU7V1jq8ga%2BSQxlySHNWooCaarY65%2B3Lb8UVso8UiSqPBr5%2F5qHx8DSYsG1le1qPv3faTxujxt0wGSPCYmH0mDeBTqp%2BpP4B%2Ff%2Bfzxm5ySpGAbvHZOv19boU%2BTW6F2PUeSx8Rkj3gqvnaqS%2Bf9IyCpeCTF2kg6yOe6728fIcllxPMpfCuvnqWP2qqJp4N0ooinC2tV%2BdDo9D2FeNSYuogH6ajFy3WhCK%2BdbtJBPq4pPrcZ4pnjdTF6Vj7TLx7Eoxovt8UQjxvqLxup%2FP0eXj26AUQ8qjz7iEeSOD%2BRd%2FoJfLd4OrF%2BVtFi%2BSAe1UYp%2Bo8KE4svsTAVD68d3dz3Wm23dI57Ih6Ff%2BKchqdXMpIfXInD0zjMyGfqo7ZK4unUCHeLpxPrs87Iq0fPG%2BKVEI8Y4eMC9cUjSZqGP30jHvUaW1oQ8Sxhs5kk6SG8ePxePLx2bPLfY1WReCQF2lDyV%2FFEPleEnP5ckteI52WQRl89wx%2B1VRFPt499RNI50ktSoIhH%2FzfcqjY9YZ456WrPNolijnhepAjimawdQUPoxnqUrOjVk6gJjfKQ%2FnAzvE%2F2gQliryqeKq%2Bdjr9dJXrxCKTTkfVoXxOJ59gkQQMaYiHMr6E9qg1KEPsR%2BQx91IZ48mYv4okXO8TzMyaIZy05g8sH8TyEteNHP7vE05H1TBcRySd44xnigHSGMD0dFDz%2BKuIJ9doRftndsRkinvX6tpyJeP5tibf%2B2snlc%2FlRG%2BLJncOIJ2b8EA%2FiEWUm4hHhm5sseJ53fO0ccBHPXIp5jUY8iEeUa4hHhG9uMuKZ44V4pnl5TUA8iEeUa5XFw8dsotQIMZkXT4gwfDkE4kE8y5kZXDq3e539ksHpdzyIZzk1wkzcIZ6uH2vOBl0kn2OzJA3oKRfBpxeznMuNTxJ3xNP0P92yQzpHkSOesVYnFs%2FZNhmaE%2FIZS5THURli%2B%2Fb2tiSecK%2BdA74gUTs2Q8SzVteWs0xl8%2BrgkRuVoKYt4xR27cixfALtlXxeftSGeMKm3vDBEM8wKrOBW0ST7SWEfK7zL5lwrr7nQTzXIU87AvHsC1044TxDEbGZIaHPkYoYo4my4sXzr39M4KoxFPH4xzGFcJJ%2BZ6AaTYngkstAlePFYlPiCfkxG9%2FxTOcL4plGtjwhpXA6CwjxLOf67MRn8nn6URvimUUbb%2FxHI5T8dCYozi6%2FzFFCOB0FJMjt1L%2FGvqFVIZ4N0L23%2FNIIEY9ZCEpK556WJHfMqCstjHiUQF4vg3iuGaUd8bIJSpqHoDgrv3jKC6eDfAS5zYtnrk0injleaUafNkLEoxrHVtKpLCDEo1oXZ4sNiSfs9zu3mwkSpuJP4ZeNEPGoFdgla7Wdgi4kyaVoVxL0EV4888F8lM%2BXXy5APPNQd8wYboKSZiEozkqSH2a9IxG895Tkk%2FdZz%2FYT5DbimQ8k4plnFm7GVCOUNApJcRb5b7ZNsQ6XKUYHkuSU0ZGml5XkdoX7TwOTTUA8Mn7bZ083QkmRSIqzgHimWW%2FPDscDSPLK8Zgvt5Lkdva7b%2BB%2FKp7wH7MdwCQJk7wZLjVCaZEIeGf%2BuG2JtWJBX7Hbfb73q0pzS5HX9FKCvE5972lQehPu5fPpOx7EowdZe6XlRiNtDpICTSr6ZdaLQb%2BSzMyy3mdP24QleS2tqZmAFhqbWzzCV49mkXvlhLiZSApFUqAJxSNmPZgUHnnodZeU8pHktaSeBvOj4rDW4jkC6lH0Womj0jykhSIo0nasLwK%2Fi4dKHp3dTZpjWgUzuo4gp1OKdpSL4TjEk%2BS%2FVK3WLKRNQVKkSUSvxvpF4e4SzuNxTO8pzTPDpvdlaUlOZ7qnJ9OLvfKLR%2FhxW5ZXj1qTkBaKpEibiyeKcO57glpePTYaaZ55NklJTme6pyfTFfGk%2BMWC%2B4tJEidBM1RvDpJiEbKOLnp11gny64iJxb3TfAwlyWlJLQUSwY6j3F49H7%2FV1k08kZthyIYgKdTAjdiCdcRXzlmTUWeQoTFL8jnD%2FXZYZWDP%2FOIp%2BnGbehP42fRF%2FyicAuuIotdmnU04ph%2B%2FRW%2FOiGdAE%2FpDEM9PptGahWYzfLybSD6SQr3L30i8LVnrl6z9ipo83k8bWT6SfI58L%2Fs0Ee2AeAI2Q83Cf9bgReIp9uqxZi2qzo2TNbkgno2BDLp1DfHQDJ%2Bm16tXhVg8hXhrNdhILzitXqPFJvSrhxePVrpMrVNHPEWaoVaxXzVCsXwkBRvklenFeqoigw3WYhT21SPJYz5qW87WT%2BJJ9xttj9eWJFGAZqhV5FfSOa4qFo%2BS6I9lRs67nOEnEzV47zq7BY9Xa2pwCvvqkfQMxCNKw0M%2B779OnV48yZuhVoGPNMNI4tkhH0%2FWouoMMlmFV8RGjXi2ZRjieYF%2BpIFrRU2lsCdfD13ls4O1Vp7sWkeLWbiP3BDPrpR6qyUexVeP50%2FiGoU9K8po4vHivYP1tupW3FiDG%2BJRDEjypRDPRQBnG%2FpKPkiLevWMHeWzi%2FVKXkSbI2UX8rue1VdPxI8OoyXMyXnqiUf51XNjt9rcr3JBo5hXz6YiHgPeq%2FeJzPrqbBn%2BXCNXS7x6kI44XWuKx6AZWn0UJC1maZNWkc%2FqT43Or83drMXVGmABKcNw4lnpFYhHnIl1xbOSUAM4pY3%2BcQtpIUvPoyIeI9bast%2FNeiC9wg%2BRMgz5cdtM%2FiIdlRxFPIsYpQ3%2F2FZaxBpneD%2FHH78tUniYZvTy0RBQFNY6oPeuImUZ8tVzJR%2BEo5p07%2BIp8Xd4XmExbIbShigt4HDiuSpehdRdvXMU1goIti8hZRlWPNvJ9jpAbfE4NMNVAUkKeLUBv0pttVePE%2B9Z5pFYV2gvEp6Ip0IGyO9QXzyOzfAWjisxiAp38i%2BLjqZIRvmM8I7IejQmUcdJmSKfqJH1O1cP8WyQz30Iv%2Fy7OH%2F%2BLYrwldhWFs8snpX7js6xYD26d9RxiCdqZPKcq494NstHKyUsG6GqfArwtmStlQ%2B71hHJhy%2Frd4UtzL69xEMzvEw85PMLEeJ5nS4i8RzLIp%2FLWqw8oJ94ksvHuhmqiycxb2vWmRsL4skcvf1n7ymepM3QqxEinx%2BF6cV7fxtYO4FIPrx41qAXmdVXPLcAGv9dH8088WyE3eXjyVozRzzXQjyetGvthXgSvX68m6GJfJLw9madsa0gnoxRi3FmxJPo5bOjGXaVzw7WMVrC%2BCkQzzgrRn4mgHgeMyLwR2%2B7mqGZfAK%2FfnaxztSgEE%2BmaMU6K%2BJ5FY%2BAAtrVDE3FE%2FTFuYt1rPZwfhqReK4uyi8fXBFK%2FeeI5yp8gQS0sxm6yCfQC2gn66uU3P3npsJ5djkktDvk6vsjnlGkmwUUoRG6ySeAgCLwHk1Nj3Husjm7FCLyCLnpHohnFu9GAUVohq7y2fgxXATWs6mpPT6UbF5dDglph91lPcQjwewsoUjNcIuAHF9CkVhLUnRlbgrh3F8M%2BayEeescxKOJ31hE0ZrhNvk4vISisdZM01drpRPO40UQkEeaqOyBeFQwXiyiJKSIzXC7fM7QC7hHZG2VqumFg4CsUsNsXcRjhvbFwgWbYVj5FGStma7lhIOANNPDdC3EY4r3yeKFm2E4ARVmLU3b8tLhOyBpipjORzymeHuJ57htKPkgnqfZ3Uo6NwJ8%2F%2BPd6U73Qzze4WjQDMPIR8D6SItq3%2FO0FA4vH%2B8ON7Qf4hnCpDhI0AyzNcLtAhKwriae9tLh5aPYxORLIR45w7kVmjXDzPLJJvpXiYh0HsjwsdtczzIYjXgMoF4uKZBP1ma4TUANWd%2FnH9I5qUYEdNmqrAYgHiuyZ%2Bs2bobuAhKwzv5xWxTpPP6wFOVc7yWKfHZ0wDfEswN702b4qeF4FryAd9oX5p9%2Fu2a2FqctUvLMRdeoxN0M8eyIjaARZv0p%2FGVD8Sh6AW%2BthuqZZl7N25qN1z14%2BXhm54%2B9EI8%2F8x87NmqGww3ESkIC1tlEP8x6Me%2BtZfPqWNb34iO3xYRYnIZ4FsGJpzVphssNQ1NCsBan6y7hPB58OZ9GCGjm3Mh%2Bjccgnl3Bb9AM1ZqERkMozluN9ZN6iCKd%2B6OZ3Vcj13b1lET7Ip5dwRI2wgwfAak2B2lDEPKO2HytG3H0Ox%2F3V82xG1Bpru3qKYn2RTw7g1W4Gao3BGkzELKOLHpt1hmEYy1dvvOxbYyIx5bv%2BepFm6FVIxT%2FHSAh74gN2Yr1zrJY2VubA%2BJZicL4HMQzzspmZLFmqN0A7pv9bvFEe%2FVYsrZJdttVtXkgH7t4fTuW%2Fv7X79%2FttmDlUwJC8VRuhl%2F%2Bxvsfv8mTqRBvzUYb8TW3Gmw1LtKPd1cvUHzet3%2F%2B5xviiRDkIs1QreBP%2FkmCCK%2BeCLL3YB2hNFbPoMYH%2BayG4OU8xKOOdHFBBfFUaoZnP32LxXOAUuC9%2B4Wg1Vh332OxYi6nafF53wj5XPKeGYB4ZmhZj1Vohjvlo1XoV40wing6sLZOeev1tXIS8ehGCvHo8pSthniG%2F8XP7vLRaKhXgpclc5zZGqx49ejGE%2FHo8pSvllQ%2BWsU92gwjicf75aPBepSzPKFjrKDBjFePXiwRjx5LnZWUxHM7jFeD0Sjs2bN2lc8O1jrJvXcVDW7IRyeGiEeHo%2B4qyeSjUdCz0jmARxOPx8tnF2vdBN%2BzmgY7xKMTO8Sjw1F%2FlUTykRb0inRuwCPKx1JAUtaWZ9MvAv0Vxfz47TaVoHyI51iNv0SqwlRnEWXxWDUccSGf%2FH2dEZAq4jk2asJbIvmReEQfo5GvvHpkUT6kc6zw%2Fn%2BIRwbTZLZBM9QWkLSQNRphZPlo8o7A2iTPnReVckQ8soAhHhk%2Fn9lG8tFqiNIiDiUeo5fPLVGkd43A2ifpbXeRckQ8svggHhk%2Fv9lB5SMtYGkjvg9A9FePhnwkvDVZ%2ByW%2B3U4Slu%2Bn4rue5eAgnmV0zhMNxXN%2Fk9nmJC3e2f3OqKuJx%2FjVs8o7Emvn7DfZTsoT8ayHBfGss%2FOf6SSfmZ%2FMJcWrKZ3bmTPKZ5S3hLXWx6r%2BSW%2B7o4gpL57l4CCeZXSbJjrL5%2Bqnc0nhWojnOG9m%2BTzLqhuniKw3VYHathKmfNy2HoYv4jmW4leq14G6zNwoH837WYmnonyk3C1ZS8%2B2cz7i8ad%2Fk86x88evUyMe%2F0As7VhAPpbNUPXVcwQoOW9L1kv5G2iSSD583DYdScQzjSzghKQN0aMRIp8f%2BerBOmBlDB8J8QyjUhmIeFQwBlgkoXy8mqG6fBK%2BfrxYB6iEpSMgniVsy5MQzzK6gBOTycezGXaXjyfrgJVxeSTEc4lIdQDiUcUZYLFE8vFshibiSfTy8WQdoAqmj4B4ppGJJrwUz7Eqv9kmYrt3cgIBeTdDM%2FkkEJA3673Jv7Y78lnjNjvrXjrH3E%2B%2F1YZ4ZnEGHB9YPrsaYVf57OIdsCpeHgnx%2BEQL8fhw3r9LQAHtbISm8gn6%2BtnJe38BjJ0A8Yxxko5CPFKC2eYHEtDuRmgun2AC2s07Q6kgHp8oXYqHj9t8AuG%2BSwABRWiELvIJIKAIrN1zfGFDxLMAbXLKo3SefseDeCapZhy%2BSUJRmqGbfG65sYF3FNbRywPx2EcI8dgzzrWDc0OM1Azd5eMsoUisIxcF4rGPDuKxZ5x3BwcJRWuG2%2BTjJKFovCMWB%2BKxjwrisWdcbwdFIUVshNvlc5YxQvYReUcrEMRjH5Fh8fA9j30w0u4gaIZRG2FV%2BUTlHSn3EY9tNJ5J5%2BUvFyAe22CkX72gfI6YhBRQUdYRagDp2EcB8dgz7rND4WYYTj6FWe8uGMRjHwHEY8%2B4zw4NmmEYATVgvatwEI89%2BWnx8HGbfVDS7tCkGYaQTxPWr2rhSg6S77Gu1j6tT%2F4F0sv29Uo6p9%2FxIJ5Lrn0HNGuGWwUkYH0kqKQx70zwGSms3nFmjy8sEM9leiCeS0QMmCLQsBluk09H1n%2F%2BPZWOt8EzAhJJ59gQ8VzGaFk8vHou2fYc0LkZ7mg4At4zzThKMkukMHpfyR7vnHbkQZQADZzjTDqXH7UhngHCXYc0aoZPm5Rn4xGwzvZxm1gIgx8vivbxjH3S%2FoJ4kgYu%2FLEFzXD0p9IIDIYalHUjErDOJJ4h1oNJcZZj4n2s4z14x8jDEE%2Fk6GQ%2BG83wefSsmpKAdxbRi4XwEJFX9xbvYxXjzP3g4exi8fBxW6Fs0LyKoBG2%2BSlcs0E14C0WwpP8fiYf0T6aMdWsx0BrXUln6DsexBMootGOQjMcj4i0YcF6nPXJy0cknWNdaRyXb5FnIuLJE6ucJ6UZzsVN2rSK8xZL4SQax8tHZX1pDOcyJuVoNfHw6kkZf%2FtDCxthho%2FcVJrVLRLSpiXkHf27HlXWVtkvjaHVuYKsOyKd4Y%2FaEE%2BQqEY8Bs1wPCrSpiVkHV304cUjjd94pqQdiXjShi7ZwWmGcwGTNi94z%2FHWHC2NneZZgq6lLh5ePUEjvftYCo2w1U%2Fi0ualwDvyR25hXz3SuO2uU4f9R6Uz9VEb4nGIXNYtaIbjkdNoYPAe5601UiNuWmcJug7iCRqY0seiGY6HV9rEFFi3emWOR%2Bb5SGm8pPsnmW8mHl49STJgxzFphuPUNRoZvMd5S0dqxEt6huDzZ6Qz%2FVEb4gke%2Fd3HoxmORUCjkSmx5uVzETKNWI1lRepRiCd1%2BJIfnmY4HkCNhgbvcd6rIzXitLp3onnm4uHVkygbdhyVZjhGXaOhKbLm5fMkbBoxGsuG1KNmpbP0URviSZ0j9oenGY4z1mhs8B7nPTtSIz6zeyYc7yYe5JMwOzyPTDMco63R2JRZ8%2FL5GTqN2IxlQepRK9JZfvEgntS54nP4Rg1R9JceNRpcI9ZH8op4z2S%2FRmxm9ks4FvEkDFrpIxs0w8g%2FjS83Q63mBm%2BbctKKj83ptq%2FqLh5ePdtjHv8ARs0wooCWxXNcRqu5NeAt4rxaMVrxWd0%2F6LxV6Yg%2BakM8QbMh2rEMm2EEAak0Qs3GVpi3CuvV%2BtCM0eoZgs1DPMECwnEeCBg3wx0CUm%2BCmo2tEG91zpLi1IyR5BxB5m4TD6%2BeIBmQ4RgOzfCGweq%2FvmzeBLUamyNrC%2Bmbc5bUi1aMJGcIMFciHfFHbYgnQAZkOoJzQ9Roiq5NULOpbWD9mIojPwC48tWqFc04aZ3JeZ3t4kE%2BzhHPvl2AhhgaoWZTg7VdqDXjZHdKk5Wl0lF58SAek9jWXpSGeB5f7aYGb5t60o6TzSnVVw0jHuSjHtv6C9IMX8fYoqHhb01JAAAKFElEQVTB26amLGJlc1KVVTWko%2FbiQTwqMe23CM0Q%2BVTI%2BkbyCSce5FOhgjbcAfkgnw1pp75lA%2FloSUf1xYN41FO514II6Hm8LRoarG1qyyJWNiddWhXxLGFjUngCXRri0aBm7mrV0GbOED55nhzwnpvXXa1iFYB%2FWPHw6gmQHRWO4NUkvFk9NqWZe1o2tJlzeDNb3e8ZL697WsZqlYdwnqZ01D9qQzzC6DL9FwGvJuHB%2FKwRjd7To5mNnsWD2eoeV5y87nh1jtX7bZoXXjzIZ1NmVN3Wq1FY8BttPqN3HF1PcpfRs0j2sJg7w8brjjNnsmCitKa2dExePIhHKdos85mAV7PQ4j7bdEbvN7vu6n1Gz7O6vta8VR5e91s9nxYfhXXSiAf5KESbJZ4T8GoYK%2FylTWb0btJ9Zu82eq7ZdVfHa93f615a513lJZhnIR2zFw%2FiEUSaqeMEvBrH2Ym0m8ronbT3HaU%2Ber7R9UbHWd3X6z5W5x%2FltzgunXiQz2KkmbZOoEoTmbnHzoY2c86VqHrdzfoet7t73WeF9ZM5VtIxffEgHqXos8w6AY2GsqtZzJx91xmvIjNyhyhnHznr1X1H%2FjzKfQfOmlY8yGcgugyBwCsCM80wUUMLG%2FAZ3pJLJIiVpXTMXzy32Hz%2F6%2FfvkjgxFwJtCcw0wwQNLXwcZ3hLLhM4VtbSQTySxGEuBLwIzDbDwE3NC5lon1neq5sFjVMZ8fCR22pmMg8CPwnMNsOgTS1NPGd5r14sWJw8pOP24kE8q1nJPAjcEZhthsGaWrpYzvJevWCgOJUTD%2FJZzUrmQUAgn2NqoMaWLpaN5OMlHdcXD%2BJJV3IcOCqB1WaIgNYiusp7drfN8SkrHuQzm4mMh8ALApJmuLnBpYyphPfMhTfFxlM67i%2BeG39%2BvXomExkLAQP58BHcfFoVlY%2B3dBDPfOoxAwKxCGg0w00%2FZccCOXgaDd5XWznHo414%2BMjtKvP4cwhMEtBoiM4Nb%2FKGcYZrsL66jVMsdkhn24sH8VxlHX8OgQUCmg3RqfEt3DLGFE3Wz27kxL%2BdeJBPjPrhFMUIWDREpyaYLhIWrG8QHJjvks7WF8%2BNL79okK7cOHB0AlYN0aEZRkf75XxJWe%2BUDuJJl%2BUcGAKDBCwaIuJ5Dj8h6%2Fbi4SO3wUbCMAjMEtBuiIjndQQSsd4tnRAvHj5ym%2B0mjIfABAHNhoh4zsEnYB1BOohnon4ZCoG0BLQaIuK5ToHgrBHPkxDyiwbXec0ICCwRkDZEpDOOPSjrKNIJ9eLhu57xvGYkBJYIrDZEpDOPOyBrxHMSRl498znODAgME1hpiIhnGO%2BngbOsDTlHkk64F88taMhnLc%2BZBYEhAqMN0bARDp2zyqAR3oaso0knrHj42K1KxXGP0ATOGqJhIwzNxPpw98wdGEeUDuKxTjLWhwAEILCRAOJZgM9HbgvQmAIBCEDg7e0tqnRCv3j4vofagQAEILBGILJ0EM9aTJkFAQhAIDQBxKMQHj5yU4DIEhCAQAsC0aWT4sXDR24taoVLQgACCgQySCeVeI7D8vJRyEyWgAAEShLIIp104kE%2BJeuFS0EAAkICmaSDeITBZjoEIACBCAQQj0MU%2BMjNATJbQAACKQhkk07KF88tE5BPiprgkBCAgCGBjNJJLR6%2B7zHMZpaGAATCE8gqnfTiQT7ha4MDQgACBgQySwfxGCQES0IAAhCwJoB4rAkPrM%2F3PQOQGAIBCJQgkF06JV48t0xCPiVqiktAAAInBCpIp5R4%2BL6HeoUABCoTqCKdcuJBPpXLjrtBoC%2BBStIpKR7k07c4uTkEKhKoJp2y4kE%2BFcuPO0GgH4GK0iktHuTTr0i5MQQqEagqnfLiQT6VypC7QKAPgcrSQTx98pibQgACiQggnkTBenVU%2Fo5PgSByBQg0IVBdOi1ePLdcRT5NqpZrQiAxgQ7SaSUevu9JXI0cHQINCHSRTjvxIJ8G1csVIZCQQCfptBQP8klYlRwZAoUJdJNOW%2FEgn8JVzNUgkIhAR%2Bm0Fg%2FySVSdHBUCBQl0lU578SCfgtXMlSCQgEBn6SCeuwTl160TVCtHhEByAt2Fcwvft%2BRxVD0%2B8lHFyWIQgMAdAaTzCwbieSgN5EOvgAAEtAkgnc9EEc%2BTDEM%2B2mXHehDoSwDpfI094nlRD8inb6Pg5hDQIoB0npNEPCcZhny0yo91INCPANJ5HXPEc1EPyKdfw%2BDGEJASQDrnBBHPQIYhnwFIDIEABN4JIJ3rREA814w%2BRiCgCVgMhUAzAghnPOCIZ5zV%2B0jkMwmM4RBoQADpzAUZ8czxQj4LvJgCgcoEkM58dBHPPDPks8iMaRCoRgDprEUU8axx43sfITemQyAzAYQjix7ikfHj9aPAjyUgkIkA0pFHC%2FHIGSIfJYYsA4HoBJCOToQQjw5H5KPIkaUgEJEA0tGLCuLRY8n3PgYsWRICuwkgHP0IIB59prx%2BjJiyLAS8CSAdG%2BKIx4Yrrx9jriwPAUsCCMeS7tsb4rHly%2BvHgS9bQECTANLRpPl8LcRjzxj5ODFmGwhICSAdKcGx%2BYhnjJPaKP5bb2ooWQgCagQQjhrKoYUQzxAm%2FUEISJ8pK0JglgDCmSWmMx7x6HBcWgX5LGFjEgRUCCAdFYxLiyCeJWy6kxCQLk9Wg8AZAYSzPz8Qz%2F4YvJ8A%2BQQJBMcoTQDpxAgv4okRh49TIKBgAeE4JQggnFhhRDyx4oGAgsaDY%2BUkgHBixg3xxIwLH78FjgtHy0EA6cSNE%2BKJGxtePwliwxHjEUA48WLyeCLEEz9GCChRjDjqPgIIZx%2F72Z0RzyyxAOP5BYQAQeAIYQggnDChGD4I4hlGFWsg8okVD06zhwDS2cNduivikRLcPB8BbQ4A228hgHC2YFfbFPGoody7EALay5%2FdfQggHB%2FO1rsgHmvCzusjIGfgbOdCAOG4YHbbBPG4ofbdCAH58mY3GwIIx4br7lURz%2B4IOOyPhBwgs4UaAWSjhjLsQognbGj0D4aA9Jmyoh4BhKPHMvpKiCd6hAzOh4AMoLLkMgGEs4wu7UTEkzZ08oMjIDlDVlgngHDW2WWfiXiyR1Dp%2FEhICSTLnBJANiTIQQDxkAdfCCAhkkKTALLRpFljLcRTI44mt0BAJljbLIpw2oR6%2BqKIZxpZzwlIqGfcZ2%2BNbGaJ9RyPeHrGXXRrJCTCV24ysikXUvMLIR5zxLU3QEK14%2FvqdsimZ9y1bo14tEiyzhsSqp0EyKZ2fD1vh3g8aTfbCxHlDjiiyR2%2FyKdHPJGjU%2BhsSChHMJFNjjhlPyXiyR7BpOdHRDECh2hixKHbKRBPt4gHvi8ysg0OkrHly%2BrjBBDPOCtGOhNARDLgiEbGj9l2BBCPHVtWNiKAkD6DRTBGicayZgQQjxlaFt5BoKqUkMuObGJPKwKIx4os64YlEE1OSCVsqnAwIwL%2FD9mA6Lk1zUVXAAAAAElFTkSuQmCC%22%3B%0A%0A%20%20%2F**%0A%20%20%20*%20%40param%20%7BVM.Target%7Cnull%7D%20target%0A%20%20%20*%20%40param%20%7Bstring%7Cunknown%7D%20thing%0A%20%20%20*%20%40returns%20%7Bstring%7Cnumber%7Cboolean%7D%0A%20%20%20*%2F%0A%20%20const%20getThingOfTarget%20%3D%20(target%2C%20thing)%20%3D%3E%20%7B%0A%20%20%20%20if%20(!target)%20%7B%0A%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(thing%20%3D%3D%3D%20%22x%20position%22)%20%7B%0A%20%20%20%20%20%20return%20target.x%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(thing%20%3D%3D%3D%20%22y%20position%22)%20%7B%0A%20%20%20%20%20%20return%20target.y%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(thing%20%3D%3D%3D%20%22direction%22)%20%7B%0A%20%20%20%20%20%20return%20target.direction%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(thing%20%3D%3D%3D%20%22costume%20num%22)%20%7B%0A%20%20%20%20%20%20return%20target.currentCostume%20%2B%201%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(thing%20%3D%3D%3D%20%22costume%20name%22)%20%7B%0A%20%20%20%20%20%20return%20target.getCostumes()%5Btarget.currentCostume%5D.name%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(thing%20%3D%3D%3D%20%22size%22)%20%7B%0A%20%20%20%20%20%20return%20target.size%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20(thing%20%3D%3D%3D%20%22volume%22)%20%7B%0A%20%20%20%20%20%20return%20target.volume%3B%0A%20%20%20%20%7D%0A%20%20%20%20%2F%2F%20this%20should%20never%20happen%0A%20%20%20%20return%20%22%22%3B%0A%20%20%7D%3B%0A%0A%20%20class%20ClonesPlus%20%7B%0A%20%20%20%20getInfo()%20%7B%0A%20%20%20%20%20%20return%20%7B%0A%20%20%20%20%20%20%20%20id%3A%20%22lmsclonesplus%22%2C%0A%20%20%20%20%20%20%20%20name%3A%20Scratch.translate(%22Clones%2B%22)%2C%0A%20%20%20%20%20%20%20%20color1%3A%20%22%23FFAB19%22%2C%0A%20%20%20%20%20%20%20%20color2%3A%20%22%23EC9C13%22%2C%0A%20%20%20%20%20%20%20%20color3%3A%20%22%23CF8B17%22%2C%0A%20%20%20%20%20%20%20%20menuIconURI%3A%20menuIconURI%2C%0A%20%20%20%20%20%20%20%20blocks%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22whenCloneStartsWithVar%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.HAT%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22when%20I%20start%20as%20a%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTA%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTB%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22createCloneWithVar%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22create%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTA%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTB%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22touchingCloneWithVar%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.BOOLEAN%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22touching%20clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%3F%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTA%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTB%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22touchingMainSprite%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.BOOLEAN%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22touching%20main%20sprite%3F%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setVariableOfClone%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20clones%20with%20%5BINPUTC%5D%20set%20to%20%5BINPUTD%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTA%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTB%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%220%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTC%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTD%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22getVariableOfClone%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22variable%20%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTA%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTB%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTC%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setVariableOfMainSprite%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22set%20variable%20%5BINPUTA%5D%20to%20%5BINPUTB%5D%20for%20main%20sprite%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTA%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTB%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22getVariableOfMainSprite%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22variable%20%5BINPUT%5D%20of%20main%20sprite%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22cloneExists%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.BOOLEAN%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22clone%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%20exists%3F%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTA%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTB%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22getThingOfClone%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%5BINPUTA%5D%20of%20clone%20with%20%5BINPUTB%5D%20set%20to%20%5BINPUTC%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTA%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22thingOfMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTB%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTC%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22getThingOfMainSprite%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22%5BINPUT%5D%20of%20main%20sprite%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22thingOfMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22stopScriptsInSprite%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22stop%20scripts%20in%20%5BINPUT%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22spriteMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22stopScriptsInClone%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22stop%20scripts%20in%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTA%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTB%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22stopScriptsInMainSprite%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22stop%20scripts%20in%20main%20sprite%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22deleteClonesInSprite%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22delete%20clones%20in%20%5BINPUT%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22spriteMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22deleteCloneWithVar%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22delete%20clones%20with%20%5BINPUTA%5D%20set%20to%20%5BINPUTB%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTA%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22variablesMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUTB%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22isClone%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.BOOLEAN%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22is%20clone%3F%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20filter%3A%20%5BScratch.TargetType.SPRITE%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22cloneCount%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22clone%20count%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22spriteCloneCount%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22clone%20count%20of%20%5BINPUT%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20INPUT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22spriteMenu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_control%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20menus%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20spriteMenu%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%22getSprites%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20menus%20use%20acceptReporters%3A%20false%20for%20Scratch%20parity%0A%20%20%20%20%20%20%20%20%20%20variablesMenu%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%22getVariables%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20thingOfMenu%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22x%20position%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22x%20position%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22y%20position%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22y%20position%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22direction%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22direction%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22costume%20%23%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22costume%20num%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22costume%20name%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22costume%20name%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22size%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22size%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22volume%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22volume%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20whenCloneStartsWithVar(args%2C%20util)%20%7B%0A%20%20%20%20%20%20%2F%2F%20TODO%3A%20this%20is%20really%20not%20ideal.%20this%20should%20be%20an%20event-based%20hat%20ideally%2C%20but%20we%20don't%20have%20a%20good%0A%20%20%20%20%20%20%2F%2F%20way%20to%20do%20that%20right%20now...%0A%20%20%20%20%20%20if%20(util.target.isOriginal)%20%7B%0A%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20const%20variable%20%3D%20util.target.lookupVariableById(args.INPUTA)%3B%0A%20%20%20%20%20%20const%20expectedValue%20%3D%20args.INPUTB%3B%0A%20%20%20%20%20%20if%20(variable)%20%7B%0A%20%20%20%20%20%20%20%20return%20Scratch.Cast.compare(variable.value%2C%20expectedValue)%20%3D%3D%3D%200%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20createCloneWithVar(args%2C%20util)%20%7B%0A%20%20%20%20%20%20%2F%2F%20%40ts-expect-error%20-%20not%20typed%20yet%0A%20%20%20%20%20%20Scratch.vm.runtime.ext_scratch3_control._createClone(%0A%20%20%20%20%20%20%20%20util.target.sprite.name%2C%0A%20%20%20%20%20%20%20%20util.target%0A%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20const%20clones%20%3D%20util.target.sprite.clones%3B%0A%20%20%20%20%20%20const%20cloneNum%20%3D%20clones.length%20-%201%3B%0A%20%20%20%20%20%20const%20cloneVariable%20%3D%20clones%5BcloneNum%5D.lookupVariableById(args.INPUTA)%3B%0A%20%20%20%20%20%20if%20(cloneVariable)%20%7B%0A%20%20%20%20%20%20%20%20cloneVariable.value%20%3D%20args.INPUTB%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20touchingCloneWithVar(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20drawableCandidates%20%3D%20util.target.sprite.clones%0A%20%20%20%20%20%20%20%20.filter((clone)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20variable%20%3D%20clone.lookupVariableById(args.INPUTA)%3B%0A%20%20%20%20%20%20%20%20%20%20return%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20variable%20%26%26%20Scratch.Cast.compare(variable.value%2C%20args.INPUTB)%20%3D%3D%3D%200%0A%20%20%20%20%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20%20%20%7D)%0A%20%20%20%20%20%20%20%20.map((clone)%20%3D%3E%20clone.drawableID)%3B%0A%20%20%20%20%20%20if%20(drawableCandidates.length%20%3D%3D%3D%200)%20%7B%0A%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20return%20Scratch.vm.renderer.isTouchingDrawables(%0A%20%20%20%20%20%20%20%20util.target.drawableID%2C%0A%20%20%20%20%20%20%20%20drawableCandidates%0A%20%20%20%20%20%20)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20touchingMainSprite(args%2C%20util)%20%7B%0A%20%20%20%20%20%20if%20(util.target.isOriginal)%20%7B%0A%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20const%20main%20%3D%20util.target.sprite.clones%5B0%5D%3B%0A%20%20%20%20%20%20const%20drawableCandidates%20%3D%20%5Bmain.drawableID%5D%3B%0A%20%20%20%20%20%20return%20Scratch.vm.renderer.isTouchingDrawables(%0A%20%20%20%20%20%20%20%20util.target.drawableID%2C%0A%20%20%20%20%20%20%20%20drawableCandidates%0A%20%20%20%20%20%20)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setVariableOfClone(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20newVariableValue%20%3D%20args.INPUTB%3B%0A%20%20%20%20%20%20const%20expectedVarValue%20%3D%20args.INPUTD%3B%0A%20%20%20%20%20%20const%20clones%20%3D%20util.target.sprite.clones%3B%0A%20%20%20%20%20%20for%20(let%20index%20%3D%201%3B%20index%20%3C%20clones.length%3B%20index%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20const%20checkVar%20%3D%20clones%5Bindex%5D.lookupVariableById(args.INPUTC)%3B%0A%20%20%20%20%20%20%20%20if%20(%0A%20%20%20%20%20%20%20%20%20%20checkVar%20%26%26%0A%20%20%20%20%20%20%20%20%20%20Scratch.Cast.compare(checkVar.value%2C%20expectedVarValue)%20%3D%3D%3D%200%0A%20%20%20%20%20%20%20%20)%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20editVar%20%3D%20clones%5Bindex%5D.lookupVariableById(args.INPUTA)%3B%0A%20%20%20%20%20%20%20%20%20%20if%20(editVar)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20editVar.value%20%3D%20newVariableValue%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20getVariableOfClone(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20clone%20%3D%20this.getCloneFromVariable(%0A%20%20%20%20%20%20%20%20args.INPUTB%2C%0A%20%20%20%20%20%20%20%20args.INPUTC%2C%0A%20%20%20%20%20%20%20%20util.target.sprite.clones%0A%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20if%20(!clone)%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F%2F%20guaranteed%20to%20exist%20by%20getCloneFromVariable%0A%20%20%20%20%20%20const%20cloneVar%20%3D%20clone.lookupVariableById(args.INPUTA)%3B%0A%20%20%20%20%20%20return%20cloneVar.value%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setVariableOfMainSprite(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20main%20%3D%20util.target.sprite.clones%5B0%5D%3B%0A%20%20%20%20%20%20const%20variableObj%20%3D%20main.lookupVariableById(args.INPUTA)%3B%0A%20%20%20%20%20%20if%20(variableObj)%20%7B%0A%20%20%20%20%20%20%20%20variableObj.value%20%3D%20args.INPUTB%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20getVariableOfMainSprite(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20main%20%3D%20util.target.sprite.clones%5B0%5D%3B%0A%20%20%20%20%20%20const%20variableObj%20%3D%20main.lookupVariableById(args.INPUT)%3B%0A%20%20%20%20%20%20if%20(variableObj)%20%7B%0A%20%20%20%20%20%20%20%20return%20variableObj.value%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20cloneExists(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20clone%20%3D%20this.getCloneFromVariable(%0A%20%20%20%20%20%20%20%20args.INPUTA%2C%0A%20%20%20%20%20%20%20%20args.INPUTB%2C%0A%20%20%20%20%20%20%20%20util.target.sprite.clones%0A%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20return%20!!clone%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getThingOfClone(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20clone%20%3D%20this.getCloneFromVariable(%0A%20%20%20%20%20%20%20%20args.INPUTB%2C%0A%20%20%20%20%20%20%20%20args.INPUTC%2C%0A%20%20%20%20%20%20%20%20util.target.sprite.clones%0A%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20return%20getThingOfTarget(clone%2C%20args.INPUTA)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getThingOfMainSprite(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20main%20%3D%20util.target.sprite.clones%5B0%5D%3B%0A%20%20%20%20%20%20return%20getThingOfTarget(main%2C%20args.INPUT)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20stopScriptsInSprite(args)%20%7B%0A%20%20%20%20%20%20const%20targetObj%20%3D%20Scratch.vm.runtime.getSpriteTargetByName(args.INPUT)%3B%0A%20%20%20%20%20%20if%20(targetObj)%20%7B%0A%20%20%20%20%20%20%20%20Scratch.vm.runtime.stopForTarget(targetObj)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20stopScriptsInMainSprite(args%2C%20util)%20%7B%0A%20%20%20%20%20%20Scratch.vm.runtime.stopForTarget(util.target.sprite.clones%5B0%5D)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20stopScriptsInClone(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20clones%20%3D%20util.target.sprite.clones%3B%0A%20%20%20%20%20%20let%20expectedValue%20%3D%20args.INPUTB%3B%0A%20%20%20%20%20%20for%20(let%20index%20%3D%201%3B%20index%20%3C%20clones.length%3B%20index%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20const%20cloneVariable%20%3D%20clones%5Bindex%5D.lookupVariableById(args.INPUTA)%3B%0A%20%20%20%20%20%20%20%20if%20(%0A%20%20%20%20%20%20%20%20%20%20cloneVariable%20%26%26%0A%20%20%20%20%20%20%20%20%20%20Scratch.Cast.compare(cloneVariable.value%2C%20expectedValue)%20%3D%3D%3D%200%0A%20%20%20%20%20%20%20%20)%20%7B%0A%20%20%20%20%20%20%20%20%20%20Scratch.vm.runtime.stopForTarget(clones%5Bindex%5D)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20deleteClonesInSprite(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20target%20%3D%20Scratch.vm.runtime.getSpriteTargetByName(args.INPUT)%3B%0A%20%20%20%20%20%20if%20(!target)%20%7B%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20const%20clones%20%3D%20target.sprite.clones%3B%0A%20%20%20%20%20%20for%20(let%20index%20%3D%20clones.length%20-%201%3B%20index%20%3E%200%3B%20index--)%20%7B%0A%20%20%20%20%20%20%20%20Scratch.vm.runtime.disposeTarget(clones%5Bindex%5D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20deleteCloneWithVar(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20clones%20%3D%20util.target.sprite.clones%3B%0A%20%20%20%20%20%20const%20expectedValue%20%3D%20args.INPUTB%3B%0A%20%20%20%20%20%20for%20(let%20index%20%3D%20clones.length%20-%201%3B%20index%20%3E%200%3B%20index--)%20%7B%0A%20%20%20%20%20%20%20%20const%20cloneVar%20%3D%20clones%5Bindex%5D.lookupVariableById(args.INPUTA)%3B%0A%20%20%20%20%20%20%20%20if%20(%0A%20%20%20%20%20%20%20%20%20%20cloneVar%20%26%26%0A%20%20%20%20%20%20%20%20%20%20Scratch.Cast.compare(cloneVar.value%2C%20expectedValue)%20%3D%3D%3D%200%0A%20%20%20%20%20%20%20%20)%20%7B%0A%20%20%20%20%20%20%20%20%20%20Scratch.vm.runtime.disposeTarget(clones%5Bindex%5D)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20isClone(args%2C%20util)%20%7B%0A%20%20%20%20%20%20return%20!util.target.isOriginal%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20cloneCount(args%2C%20util)%20%7B%0A%20%20%20%20%20%20return%20Scratch.vm.runtime._cloneCounter%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20spriteCloneCount(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20target%20%3D%20Scratch.vm.runtime.getSpriteTargetByName(args.INPUT)%3B%0A%20%20%20%20%20%20if%20(target)%20%7B%0A%20%20%20%20%20%20%20%20return%20target.sprite.clones.length%20-%201%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20return%200%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F**%0A%20%20%20%20%20*%20%40param%20%7Bstring%7D%20variableId%0A%20%20%20%20%20*%20%40param%20%7Bunknown%7D%20expectedValue%0A%20%20%20%20%20*%20%40param%20%7BVM.Target%5B%5D%7D%20clones%0A%20%20%20%20%20*%20%40returns%20%7BVM.Target%7Cnull%7D%0A%20%20%20%20%20*%2F%0A%20%20%20%20getCloneFromVariable(variableId%2C%20expectedValue%2C%20clones)%20%7B%0A%20%20%20%20%20%20for%20(let%20index%20%3D%201%3B%20index%20%3C%20clones.length%3B%20index%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20const%20cloneVar%20%3D%20clones%5Bindex%5D.lookupVariableById(variableId)%3B%0A%20%20%20%20%20%20%20%20if%20(%0A%20%20%20%20%20%20%20%20%20%20cloneVar%20%26%26%0A%20%20%20%20%20%20%20%20%20%20Scratch.Cast.compare(cloneVar.value%2C%20expectedValue)%20%3D%3D%3D%200%0A%20%20%20%20%20%20%20%20)%20%7B%0A%20%20%20%20%20%20%20%20%20%20return%20clones%5Bindex%5D%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20return%20null%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getSprites()%20%7B%0A%20%20%20%20%20%20let%20spriteNames%20%3D%20%5B%5D%3B%0A%20%20%20%20%20%20const%20targets%20%3D%20Scratch.vm.runtime.targets%3B%0A%20%20%20%20%20%20const%20editingTarget%20%3D%20Scratch.vm.runtime.getEditingTarget()%3B%0A%20%20%20%20%20%20for%20(let%20index%20%3D%201%3B%20index%20%3C%20targets.length%3B%20index%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20const%20curTarget%20%3D%20targets%5Bindex%5D%3B%0A%20%20%20%20%20%20%20%20let%20display%20%3D%20curTarget.getName()%3B%0A%20%20%20%20%20%20%20%20if%20(editingTarget%20%3D%3D%3D%20curTarget)%20%7B%0A%20%20%20%20%20%20%20%20%20%20display%20%3D%20Scratch.translate(%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20default%3A%20%22myself%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20description%3A%20%22Item%20in%20a%20dropdown%20that%20refers%20to%20the%20current%20sprite%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20(targets%5Bindex%5D.isOriginal)%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20jsonOBJ%20%3D%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20display%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20curTarget.getName()%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20spriteNames.push(jsonOBJ)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20if%20(spriteNames.length%20%3E%200)%20%7B%0A%20%20%20%20%20%20%20%20return%20spriteNames%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20return%20%5B%7B%20text%3A%20%22%22%2C%20value%3A%200%20%7D%5D%3B%20%2F%2Fthis%20should%20never%20happen%20but%20it's%20a%20failsafe%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20getSpriteObj(name)%20%7B%0A%20%20%20%20%20%20%2F%2FThis%20is%20unused%20but%20I'm%20leaving%20it%20in%20for%20potential%20future%20blocks%0A%20%20%20%20%20%20const%20spriteObj%20%3D%20Scratch.vm.runtime.getSpriteTargetByName(name)%3B%0A%20%20%20%20%20%20return%20JSON.stringify(spriteObj)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getVariables()%20%7B%0A%20%20%20%20%20%20%2F%2F%20%40ts-expect-error%20-%20Blockly%20not%20typed%20yet%0A%20%20%20%20%20%20const%20variables%20%3D%0A%20%20%20%20%20%20%20%20typeof%20Blockly%20%3D%3D%3D%20%22undefined%22%0A%20%20%20%20%20%20%20%20%20%20%3F%20%5B%5D%0A%20%20%20%20%20%20%20%20%20%20%3A%20Blockly.getMainWorkspace()%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getVariableMap()%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getVariablesOfType(%22%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.filter((model)%20%3D%3E%20model.isLocal)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.map((model)%20%3D%3E%20(%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20model.name%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20model.getId()%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D))%3B%0A%20%20%20%20%20%20if%20(variables.length%20%3E%200)%20%7B%0A%20%20%20%20%20%20%20%20return%20variables%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20return%20%5B%7B%20text%3A%20%22%22%2C%20value%3A%20%22%22%20%7D%5D%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20Scratch.extensions.register(new%20ClonesPlus())%3B%0A%7D)(Scratch)%3B%0A%20%7D)(Scratch)%3B","data:text/javascript;,(function(Scratch)%20%7B%20%2F%2F%20Name%3A%20Tween%0D%0A%2F%2F%20ID%3A%20jeremygamerTweening%0D%0A%2F%2F%20Description%3A%20Easing%20methods%20for%20smooth%20animations.%0D%0A%2F%2F%20By%3A%20JeremyGamer13%20%3Chttps%3A%2F%2Fscratch.mit.edu%2Fusers%2FJeremyGamer13%2F%3E%0D%0A%2F%2F%20By%3A%20Fath11%20%3Chttps%3A%2F%2Fscratch.mit.edu%2Fusers%2FFath11%2F%3E%0D%0A%2F%2F%20License%3A%20MIT%0D%0A%0D%0A%2F*%20generated%20l10n%20code%20*%2FScratch.translate.setup(%7B%22fi%22%3A%7B%22_Tweening%22%3A%22Interpolointi%22%2C%22_%5BMODE%5D%20ease%20%5BDIRECTION%5D%20%5BSTART%5D%20to%20%5BEND%5D%20by%20%5BAMOUNT%5D%25%22%3A%22%5BMODE%5D-muotoinen%20%5BDIRECTION%5Dpehmennys%20kohdasta%20%5BSTART%5D%20kohtaan%20%5BEND%5D%20%5BAMOUNT%5D%20%25%3Alla%22%2C%22_back%22%3A%22taaksep%C3%A4in%22%2C%22_bounce%22%3A%22kimmoisuus%22%2C%22_circ%22%3A%22ympyr%C3%A4%22%2C%22_cubic%22%3A%22kuutiollinen%22%2C%22_direction%22%3A%22suunnaksi%22%2C%22_elastic%22%3A%22joustava%22%2C%22_expo%22%3A%22eksponentiaalinen%22%2C%22_in%22%3A%22sis%C3%A4%C3%A4n%22%2C%22_in%20out%22%3A%22sis%C3%A4%C3%A4n-%20ja%20ulos%22%2C%22_linear%22%3A%22tasainen%22%2C%22_out%22%3A%22ulos%22%2C%22_quad%22%3A%22kvadraattinen%22%2C%22_quart%22%3A%22nelj%C3%A4s%20aste%22%2C%22_quint%22%3A%22viides%20aste%22%2C%22_sine%22%3A%22sini%22%2C%22_size%22%3A%22kooksi%22%2C%22_tween%20%5BPROPERTY%5D%20to%20%5BVALUE%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%3A%22interpoloi%20%5BPROPERTY%5D%20%5BVALUE%5D%20%5BSEC%5D%20s%3An%20aikana%20%5BMODE%5D-muotoisella%20%5BDIRECTION%5Dpehmennyksell%C3%A4%22%2C%22_tween%20to%20x%3A%20%5BX%5D%20y%3A%20%5BY%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%3A%22interpoloi%20sijaintiin%20x%3A%20%5BX%5D%20y%3A%20%5BY%5D%20%5BSEC%5D%20s%3An%20aikana%20%5BMODE%5D-muotoisella%20%5BDIRECTION%5Dpehmennyksell%C3%A4%22%2C%22_tween%20variable%20%5BVAR%5D%20to%20%5BVALUE%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%3A%22interpoloi%20muuttuja%20%5BVAR%5D%20arvoon%20%5BVALUE%5D%20%5BSEC%5D%20s%3An%20aikana%20%5BMODE%5D-muotoisella%20%5BDIRECTION%5Dpehmennyksell%C3%A4%22%2C%22_x%20position%22%3A%22x-sijainniksi%22%2C%22_y%20position%22%3A%22y-sijainniksi%22%7D%2C%22it%22%3A%7B%22_bounce%22%3A%22elasticit%C3%A0%22%7D%2C%22ja%22%3A%7B%22_%5BMODE%5D%20ease%20%5BDIRECTION%5D%20%5BSTART%5D%20to%20%5BEND%5D%20by%20%5BAMOUNT%5D%25%22%3A%22%5BMODE%5D%5BDIRECTION%5D%5BSTART%5D%E3%81%8B%E3%82%89%5BEND%5D%E3%81%BE%E3%81%A7%5BAMOUNT%5D%25%E7%B7%A9%E3%82%81%E3%82%8B%22%2C%22_back%22%3A%22%E6%88%BB%E3%82%8B%22%2C%22_bounce%22%3A%22%E3%83%90%E3%82%A6%E3%83%B3%E3%83%89%22%2C%22_circ%22%3A%22%E3%82%B5%E3%83%BC%E3%82%AF%E3%83%AB%22%2C%22_cubic%22%3A%22%E3%82%AD%E3%83%A5%E3%83%BC%E3%83%93%E3%83%83%E3%82%AF%22%2C%22_direction%22%3A%22%E6%96%B9%E5%90%91%22%2C%22_elastic%22%3A%22%E5%BC%BE%E5%8A%9B%E6%80%A7%22%2C%22_expo%22%3A%22%E5%8D%9A%E8%A6%A7%E4%BC%9A%22%2C%22_in%22%3A%22%E3%82%A4%E3%83%B3%22%2C%22_in%20out%22%3A%22%E3%82%A4%E3%83%B3%20%E3%82%A2%E3%82%A6%E3%83%88%22%2C%22_linear%22%3A%22%E4%B8%80%E6%AC%A1%E9%96%A2%E6%95%B0%22%2C%22_out%22%3A%22%E3%82%A2%E3%82%A6%E3%83%88%22%2C%22_quad%22%3A%22%E3%82%AF%E3%83%AF%E3%83%83%E3%83%89%22%2C%22_quart%22%3A%22%E3%82%AF%E3%82%A9%E3%83%BC%E3%83%88%22%2C%22_quint%22%3A%22%E4%BA%94%E3%81%A4%E5%AD%90%22%2C%22_sine%22%3A%22%E6%AD%A3%E5%BC%A6%E9%96%A2%E6%95%B0%22%2C%22_size%22%3A%22%E3%82%B5%E3%82%A4%E3%82%BA%22%2C%22_tween%20%5BPROPERTY%5D%20to%20%5BVALUE%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%3A%22%5BPROPERTY%5D%E3%82%92%5BVALUE%5D%E3%81%AB%5BSEC%5D%E7%A7%92%E3%81%A7%5BDIRECTION%5D%E3%82%92%5BMODE%5D%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E5%A4%89%E3%81%88%E3%82%8B%22%2C%22_tween%20to%20x%3A%20%5BX%5D%20y%3A%20%5BY%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%3A%22%5BSEC%5D%20%E7%A7%92%E3%81%8B%E3%81%91%E3%81%A6%20x%3A%5BX%5D%20y%3A%5BY%5D%20%E3%81%ABtween%E3%81%97%E3%81%BE%E3%81%99%5BMODE%5D%20%E3%82%A4%E3%83%BC%E3%82%BA%20%5BDIRECTION%5D%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%BE%E3%81%99%22%2C%22_tween%20variable%20%5BVAR%5D%20to%20%5BVALUE%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%3A%22%5BMODE%5D%E3%82%A4%E3%83%BC%E3%82%B8%E3%83%BC%5BDIRECTION%5D%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%80%81%E5%A4%89%E6%95%B0%5BVAR%5D%E3%82%92%5BSEC%5D%E7%A7%92%E3%81%8B%E3%81%91%E3%81%A6%5BVALUE%5D%E3%81%ABTween%E3%81%97%E3%81%BE%E3%81%99%22%2C%22_x%20position%22%3A%22X%20%E4%BD%8D%E7%BD%AE%22%2C%22_y%20position%22%3A%22Y%E4%BD%8D%E7%BD%AE%22%7D%2C%22ko%22%3A%7B%22_Tweening%22%3A%22%ED%8A%B8%EC%9C%84%EB%8B%9D%22%2C%22_%5BMODE%5D%20ease%20%5BDIRECTION%5D%20%5BSTART%5D%20to%20%5BEND%5D%20by%20%5BAMOUNT%5D%25%22%3A%22%5BMODE%5D%20ease%5BDIRECTION%5D%20%5BSTART%5D%EC%97%90%EC%84%9C%20%5BEND%5D(%EC%9C%BC)%EB%A1%9C%EC%9D%98%20%5BAMOUNT%5D%25%20%EA%B0%92%22%2C%22_direction%22%3A%22%EB%B0%A9%ED%96%A5%22%2C%22_in%22%3A%22%EC%9D%B8%22%2C%22_in%20out%22%3A%22%EC%9D%B8%20%EC%95%84%EC%9B%83%22%2C%22_out%22%3A%22%EC%95%84%EC%9B%83%22%2C%22_size%22%3A%22%ED%81%AC%EA%B8%B0%22%2C%22_tween%20%5BPROPERTY%5D%20to%20%5BVALUE%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%3A%22%5BPROPERTY%5D%EC%9D%84(%EB%A5%BC)%20%5BVALUE%5D(%EC%9C%BC)%EB%A1%9C%20%5BSEC%5D%EC%B4%88%20%EB%8F%99%EC%95%88%20%5BMODE%5D%20ease%5BDIRECTION%5D%20(%EC%9C%BC)%EB%A1%9C%20%EB%B0%94%EA%BE%B8%EA%B8%B0%22%2C%22_tween%20to%20x%3A%20%5BX%5D%20y%3A%20%5BY%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%3A%22x%3A%5BX%5D%20y%3A%5BY%5D%20(%EC%9C%BC)%EB%A1%9C%20%5BSEC%5D%EC%B4%88%20%EB%8F%99%EC%95%88%20%5BMODE%5D%20ease%5BDIRECTION%5D%20(%EC%9C%BC)%EB%A1%9C%20%EC%9D%B4%EB%8F%99%ED%95%98%EA%B8%B0%22%2C%22_tween%20variable%20%5BVAR%5D%20to%20%5BVALUE%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%3A%22%EB%B3%80%EC%88%98%20%5BVAR%5D%EC%9D%84(%EB%A5%BC)%20%5BVALUE%5D(%EC%9C%BC)%EB%A1%9C%20%5BSEC%5D%EC%B4%88%20%EB%8F%99%EC%95%88%20%5BMODE%5D%20ease%5BDIRECTION%5D(%EC%9C%BC)%EB%A1%9C%20%EB%B0%94%EA%BE%B8%EA%B8%B0%22%2C%22_x%20position%22%3A%22x%EC%A2%8C%ED%91%9C%22%2C%22_y%20position%22%3A%22y%EC%A2%8C%ED%91%9C%22%7D%2C%22nb%22%3A%7B%22_bounce%22%3A%22sprette%22%7D%2C%22nl%22%3A%7B%22_Tweening%22%3A%22Overgangen%22%2C%22_%5BMODE%5D%20ease%20%5BDIRECTION%5D%20%5BSTART%5D%20to%20%5BEND%5D%20by%20%5BAMOUNT%5D%25%22%3A%22overgang%20%5BMODE%5D%20%5BDIRECTION%5D%20van%20%5BSTART%5D%20naar%20%5BEND%5D%20op%20%5BAMOUNT%5D%25%22%2C%22_back%22%3A%22terugslag%22%2C%22_bounce%22%3A%22stuiter%22%2C%22_circ%22%3A%22circulair%22%2C%22_cubic%22%3A%22kubisch%22%2C%22_direction%22%3A%22richting%22%2C%22_elastic%22%3A%22elastisch%22%2C%22_expo%22%3A%22exponentieel%22%2C%22_in%20out%22%3A%22in%20uit%22%2C%22_out%22%3A%22uit%22%2C%22_quad%22%3A%22kwadratisch%22%2C%22_quart%22%3A%22kwartisch%22%2C%22_quint%22%3A%22kwintisch%22%2C%22_sine%22%3A%22sinus%22%2C%22_size%22%3A%22grootte%22%2C%22_tween%20%5BPROPERTY%5D%20to%20%5BVALUE%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%3A%22animeer%20%5BPROPERTY%5D%20naar%20%5BVALUE%5D%20gedurende%20%5BSEC%5D%20seconden%20met%20overgang%20%5BMODE%5D%20%5BDIRECTION%5D%22%2C%22_tween%20to%20x%3A%20%5BX%5D%20y%3A%20%5BY%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%3A%22animeer%20naar%20x%3A%20%5BX%5D%20y%3A%20%5BY%5D%20gedurende%20%5BSEC%5D%20seconden%20met%20overgang%20%5BMODE%5D%20%5BDIRECTION%5D%22%2C%22_tween%20variable%20%5BVAR%5D%20to%20%5BVALUE%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%3A%22animeer%20variabele%20%5BVAR%5D%20naar%20%5BVALUE%5D%20gedurende%20%5BSEC%5D%20seconden%20met%20overgang%20%5BMODE%5D%20%5BDIRECTION%5D%22%2C%22_x%20position%22%3A%22x-positie%22%2C%22_y%20position%22%3A%22y-positie%22%7D%2C%22pl%22%3A%7B%22_direction%22%3A%22kierunek%22%2C%22_size%22%3A%22wielko%C5%9B%C4%87%22%2C%22_x%20position%22%3A%22pozycja%20x%22%2C%22_y%20position%22%3A%22pozycja%20y%22%7D%2C%22ru%22%3A%7B%22_Tweening%22%3A%22%D0%9F%D0%BB%D0%B0%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D1%8C%22%2C%22_%5BMODE%5D%20ease%20%5BDIRECTION%5D%20%5BSTART%5D%20to%20%5BEND%5D%20by%20%5BAMOUNT%5D%25%22%3A%22%5BMODE%5D%20%D0%B2%20%5BDIRECTION%5D%20%5BSTART%5D%20%D0%B4%D0%BE%20%5BEND%5D%20%D0%BD%D0%B0%20%5BAMOUNT%5D%25%22%2C%22_back%22%3A%22%D0%BD%D0%B0%D0%B7%D0%B0%D0%B4%22%2C%22_bounce%22%3A%22%D1%83%D0%BF%D1%80%D1%83%D0%B3%D0%BE%D1%81%D1%82%D1%8C%22%2C%22_circ%22%3A%22%D1%86%D0%B8%D1%80%D0%BA%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%22%2C%22_cubic%22%3A%22%D0%BA%D1%83%D0%B1%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%22%2C%22_direction%22%3A%22%D0%BD%D0%B0%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%22%2C%22_elastic%22%3A%22%D1%8D%D0%BB%D0%B0%D1%81%D1%82%D0%B8%D1%87%D0%BD%D0%BE%22%2C%22_expo%22%3A%22%D1%8D%D0%BA%D1%81%D0%BF%D0%BE%22%2C%22_in%22%3A%22%D0%B2%22%2C%22_in%20out%22%3A%22%D0%B2%20%D0%B8%D0%B7%22%2C%22_linear%22%3A%22%D0%BB%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D0%BE%22%2C%22_out%22%3A%22%D0%B8%D0%B7%22%2C%22_quad%22%3A%22%D1%87%D0%B5%D1%82%D1%8B%D1%80%D1%91%D1%85%D1%83%D0%B3%D0%BE%D0%BB%D1%8C%D0%BD%D0%BE%22%2C%22_quart%22%3A%22%D0%BA%D0%B2%D0%B0%D1%80%D1%82%D0%BE%D0%B2%D0%BE%22%2C%22_quint%22%3A%22%D0%BA%D0%B2%D0%B8%D0%BD%D1%82%D0%BE%D0%B2%D0%BE%22%2C%22_sine%22%3A%22%D0%B1%D0%B5%D0%B7%22%2C%22_size%22%3A%22%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%22%2C%22_tween%20%5BPROPERTY%5D%20to%20%5BVALUE%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%3A%22%D0%BF%D0%BB%D0%B0%D0%B2%D0%BD%D0%BE%20%5BPROPERTY%5D%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%5BVALUE%5D%20%D0%BD%D0%B0%20%5BSEC%5D%20%D1%81%D0%B5%D0%BA%D1%83%D0%BD%D0%B4%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F%20%5BMODE%5D%20%D0%B2%20%5BDIRECTION%5D%22%2C%22_tween%20to%20x%3A%20%5BX%5D%20y%3A%20%5BY%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%3A%22%D0%BF%D0%BB%D0%B0%D0%B2%D0%BD%D0%BE%20%D0%B2%20x%3A%20%5BX%5D%20y%3A%20%5BY%5D%20%D0%BD%D0%B0%20%5BSEC%5D%20%D1%81%D0%B5%D0%BA%D1%83%D0%BD%D0%B4%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F%20%5BMODE%5D%20%D0%B2%20%5BDIRECTION%5D%22%2C%22_tween%20variable%20%5BVAR%5D%20to%20%5BVALUE%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%3A%22%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F%20%D0%BF%D0%BB%D0%B0%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D0%B8%20%5BVAR%5D%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%5BVALUE%5D%20%D0%BD%D0%B0%20%5BSEC%5D%20%D1%81%D0%B5%D0%BA%D1%83%D0%BD%D0%B4%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F%20%5BMODE%5D%20%D0%B2%20%5BDIRECTION%5D%22%2C%22_x%20position%22%3A%22%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D1%8F%20x%22%2C%22_y%20position%22%3A%22%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D1%8F%20y%22%7D%2C%22zh-cn%22%3A%7B%22_Tweening%22%3A%22%E8%A1%A5%E9%97%B4%22%2C%22_%5BMODE%5D%20ease%20%5BDIRECTION%5D%20%5BSTART%5D%20to%20%5BEND%5D%20by%20%5BAMOUNT%5D%25%22%3A%22%5BMODE%5D%E7%BC%93%5BDIRECTION%5D%E4%BB%8E%5BSTART%5D%E5%88%B0%5BEND%5D%E8%BF%9B%E5%BA%A6%5BAMOUNT%5D%25%22%2C%22_back%22%3A%22%E5%9B%9E%E5%BC%B9%22%2C%22_bounce%22%3A%22%E5%BC%B9%E6%80%A7%22%2C%22_circ%22%3A%22%E5%9C%86%E5%BD%A2%22%2C%22_cubic%22%3A%22%E4%B8%89%E6%AC%A1%22%2C%22_direction%22%3A%22%E6%96%B9%E5%90%91%22%2C%22_elastic%22%3A%22%E5%BC%B9%E8%B7%B3%22%2C%22_expo%22%3A%22%E6%8C%87%E6%95%B0%22%2C%22_in%22%3A%22%E5%85%A5%22%2C%22_in%20out%22%3A%22%E5%85%A5%E5%92%8C%E5%87%BA%22%2C%22_linear%22%3A%22%E7%BA%BF%E6%80%A7%22%2C%22_out%22%3A%22%E5%87%BA%22%2C%22_quad%22%3A%22%E4%BA%8C%E6%AC%A1%22%2C%22_quart%22%3A%22%E5%9B%9B%E6%AC%A1%22%2C%22_quint%22%3A%22%E4%BA%94%E6%AC%A1%22%2C%22_sine%22%3A%22%E6%AD%A3%E5%BC%A6%22%2C%22_size%22%3A%22%E5%A4%A7%E5%B0%8F%22%2C%22_tween%20%5BPROPERTY%5D%20to%20%5BVALUE%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%3A%22%E5%B0%86%5BPROPERTY%5D%E5%9C%A8%5BSEC%5D%E7%A7%92%E5%86%85%E4%BD%BF%E7%94%A8%5BMODE%5D%E7%BC%93%5BDIRECTION%5D%E6%B8%90%E5%8F%98%E5%88%B0%5BVALUE%5D%22%2C%22_tween%20to%20x%3A%20%5BX%5D%20y%3A%20%5BY%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%3A%22%E5%9C%A8%5BSEC%5D%E7%A7%92%E5%86%85%E4%BD%BF%E7%94%A8%5BMODE%5D%E7%BC%93%5BDIRECTION%5D%E5%8F%98%E9%80%9F%E7%A7%BB%E5%88%B0x%3A%5BX%5Dy%3A%5BY%5D%22%2C%22_tween%20variable%20%5BVAR%5D%20to%20%5BVALUE%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%3A%22%E5%B0%86%E5%8F%98%E9%87%8F%5BVAR%5D%E5%9C%A8%5BSEC%5D%E7%A7%92%E5%86%85%E4%BD%BF%E7%94%A8%5BMODE%5D%E7%BC%93%5BDIRECTION%5D%E6%95%88%E6%9E%9C%E6%B8%90%E5%8F%98%E5%88%B0%5BVALUE%5D%22%2C%22_x%20position%22%3A%22x%E5%9D%90%E6%A0%87%22%2C%22_y%20position%22%3A%22y%E5%9D%90%E6%A0%87%22%7D%7D)%3B%2F*%20end%20generated%20l10n%20code%20*%2F(function%20(Scratch)%20%7B%0D%0A%20%20%22use%20strict%22%3B%0D%0A%0D%0A%20%20const%20BlockType%20%3D%20Scratch.BlockType%3B%0D%0A%20%20const%20ArgumentType%20%3D%20Scratch.ArgumentType%3B%0D%0A%20%20const%20Cast%20%3D%20Scratch.Cast%3B%0D%0A%0D%0A%20%20%2F**%0D%0A%20%20%20*%20%40param%20%7Bnumber%7D%20time%20should%20be%200-1%0D%0A%20%20%20*%20%40param%20%7Bnumber%7D%20a%20value%20at%200%0D%0A%20%20%20*%20%40param%20%7Bnumber%7D%20b%20value%20at%201%0D%0A%20%20%20*%20%40returns%20%7Bnumber%7D%0D%0A%20%20%20*%2F%0D%0A%20%20const%20interpolate%20%3D%20(time%2C%20a%2C%20b)%20%3D%3E%20%7B%0D%0A%20%20%20%20%2F%2F%20don't%20restrict%20range%20of%20time%20as%20some%20easing%20functions%20are%20expected%20to%20go%20outside%20the%20range%0D%0A%20%20%20%20const%20multiplier%20%3D%20b%20-%20a%3B%0D%0A%20%20%20%20const%20result%20%3D%20time%20*%20multiplier%20%2B%20a%3B%0D%0A%20%20%20%20return%20result%3B%0D%0A%20%20%7D%3B%0D%0A%0D%0A%20%20const%20linear%20%3D%20(x)%20%3D%3E%20x%3B%0D%0A%0D%0A%20%20const%20sine%20%3D%20(x%2C%20dir)%20%3D%3E%20%7B%0D%0A%20%20%20%20switch%20(dir)%20%7B%0D%0A%20%20%20%20%20%20case%20%22in%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%201%20-%20Math.cos((x%20*%20Math.PI)%20%2F%202)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20case%20%22out%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20Math.sin((x%20*%20Math.PI)%20%2F%202)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20case%20%22in%20out%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20-(Math.cos(Math.PI%20*%20x)%20-%201)%20%2F%202%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20default%3A%0D%0A%20%20%20%20%20%20%20%20return%200%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%3B%0D%0A%0D%0A%20%20const%20quad%20%3D%20(x%2C%20dir)%20%3D%3E%20%7B%0D%0A%20%20%20%20switch%20(dir)%20%7B%0D%0A%20%20%20%20%20%20case%20%22in%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20x%20*%20x%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20case%20%22out%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%201%20-%20(1%20-%20x)%20*%20(1%20-%20x)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20case%20%22in%20out%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20x%20%3C%200.5%20%3F%202%20*%20x%20*%20x%20%3A%201%20-%20Math.pow(-2%20*%20x%20%2B%202%2C%202)%20%2F%202%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20default%3A%0D%0A%20%20%20%20%20%20%20%20return%200%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%3B%0D%0A%0D%0A%20%20const%20cubic%20%3D%20(x%2C%20dir)%20%3D%3E%20%7B%0D%0A%20%20%20%20switch%20(dir)%20%7B%0D%0A%20%20%20%20%20%20case%20%22in%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20x%20*%20x%20*%20x%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20case%20%22out%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%201%20-%20Math.pow(1%20-%20x%2C%203)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20case%20%22in%20out%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20x%20%3C%200.5%20%3F%204%20*%20x%20*%20x%20*%20x%20%3A%201%20-%20Math.pow(-2%20*%20x%20%2B%202%2C%203)%20%2F%202%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20default%3A%0D%0A%20%20%20%20%20%20%20%20return%200%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%3B%0D%0A%0D%0A%20%20const%20quart%20%3D%20(x%2C%20dir)%20%3D%3E%20%7B%0D%0A%20%20%20%20switch%20(dir)%20%7B%0D%0A%20%20%20%20%20%20case%20%22in%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20x%20*%20x%20*%20x%20*%20x%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20case%20%22out%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%201%20-%20Math.pow(1%20-%20x%2C%204)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20case%20%22in%20out%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20x%20%3C%200.5%20%3F%208%20*%20x%20*%20x%20*%20x%20*%20x%20%3A%201%20-%20Math.pow(-2%20*%20x%20%2B%202%2C%204)%20%2F%202%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20default%3A%0D%0A%20%20%20%20%20%20%20%20return%200%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%3B%0D%0A%0D%0A%20%20const%20quint%20%3D%20(x%2C%20dir)%20%3D%3E%20%7B%0D%0A%20%20%20%20switch%20(dir)%20%7B%0D%0A%20%20%20%20%20%20case%20%22in%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20x%20*%20x%20*%20x%20*%20x%20*%20x%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20case%20%22out%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%201%20-%20Math.pow(1%20-%20x%2C%205)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20case%20%22in%20out%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20x%20%3C%200.5%0D%0A%20%20%20%20%20%20%20%20%20%20%3F%2016%20*%20x%20*%20x%20*%20x%20*%20x%20*%20x%0D%0A%20%20%20%20%20%20%20%20%20%20%3A%201%20-%20Math.pow(-2%20*%20x%20%2B%202%2C%205)%20%2F%202%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20default%3A%0D%0A%20%20%20%20%20%20%20%20return%200%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%3B%0D%0A%0D%0A%20%20const%20expo%20%3D%20(x%2C%20dir)%20%3D%3E%20%7B%0D%0A%20%20%20%20switch%20(dir)%20%7B%0D%0A%20%20%20%20%20%20case%20%22in%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20x%20%3D%3D%3D%200%20%3F%200%20%3A%20Math.pow(2%2C%2010%20*%20x%20-%2010)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20case%20%22out%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20x%20%3D%3D%3D%201%20%3F%201%20%3A%201%20-%20Math.pow(2%2C%20-10%20*%20x)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20case%20%22in%20out%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20x%20%3D%3D%3D%200%0D%0A%20%20%20%20%20%20%20%20%20%20%3F%200%0D%0A%20%20%20%20%20%20%20%20%20%20%3A%20x%20%3D%3D%3D%201%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%201%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3A%20x%20%3C%200.5%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20Math.pow(2%2C%2020%20*%20x%20-%2010)%20%2F%202%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20(2%20-%20Math.pow(2%2C%20-20%20*%20x%20%2B%2010))%20%2F%202%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20default%3A%0D%0A%20%20%20%20%20%20%20%20return%200%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%3B%0D%0A%0D%0A%20%20const%20circ%20%3D%20(x%2C%20dir)%20%3D%3E%20%7B%0D%0A%20%20%20%20switch%20(dir)%20%7B%0D%0A%20%20%20%20%20%20case%20%22in%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%201%20-%20Math.sqrt(1%20-%20Math.pow(x%2C%202))%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20case%20%22out%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20Math.sqrt(1%20-%20Math.pow(x%20-%201%2C%202))%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20case%20%22in%20out%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20x%20%3C%200.5%0D%0A%20%20%20%20%20%20%20%20%20%20%3F%20(1%20-%20Math.sqrt(1%20-%20Math.pow(2%20*%20x%2C%202)))%20%2F%202%0D%0A%20%20%20%20%20%20%20%20%20%20%3A%20(Math.sqrt(1%20-%20Math.pow(-2%20*%20x%20%2B%202%2C%202))%20%2B%201)%20%2F%202%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20default%3A%0D%0A%20%20%20%20%20%20%20%20return%200%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%3B%0D%0A%0D%0A%20%20const%20back%20%3D%20(x%2C%20dir)%20%3D%3E%20%7B%0D%0A%20%20%20%20switch%20(dir)%20%7B%0D%0A%20%20%20%20%20%20case%20%22in%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20const%20c1%20%3D%201.70158%3B%0D%0A%20%20%20%20%20%20%20%20const%20c3%20%3D%20c1%20%2B%201%3B%0D%0A%20%20%20%20%20%20%20%20return%20c3%20*%20x%20*%20x%20*%20x%20-%20c1%20*%20x%20*%20x%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20case%20%22out%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20const%20c1%20%3D%201.70158%3B%0D%0A%20%20%20%20%20%20%20%20const%20c3%20%3D%20c1%20%2B%201%3B%0D%0A%20%20%20%20%20%20%20%20return%201%20%2B%20c3%20*%20Math.pow(x%20-%201%2C%203)%20%2B%20c1%20*%20Math.pow(x%20-%201%2C%202)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20case%20%22in%20out%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20const%20c1%20%3D%201.70158%3B%0D%0A%20%20%20%20%20%20%20%20const%20c2%20%3D%20c1%20*%201.525%3B%0D%0A%20%20%20%20%20%20%20%20return%20x%20%3C%200.5%0D%0A%20%20%20%20%20%20%20%20%20%20%3F%20(Math.pow(2%20*%20x%2C%202)%20*%20((c2%20%2B%201)%20*%202%20*%20x%20-%20c2))%20%2F%202%0D%0A%20%20%20%20%20%20%20%20%20%20%3A%20(Math.pow(2%20*%20x%20-%202%2C%202)%20*%20((c2%20%2B%201)%20*%20(x%20*%202%20-%202)%20%2B%20c2)%20%2B%202)%20%2F%202%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20default%3A%0D%0A%20%20%20%20%20%20%20%20return%200%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%3B%0D%0A%0D%0A%20%20const%20elastic%20%3D%20(x%2C%20dir)%20%3D%3E%20%7B%0D%0A%20%20%20%20switch%20(dir)%20%7B%0D%0A%20%20%20%20%20%20case%20%22in%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20const%20c4%20%3D%20(2%20*%20Math.PI)%20%2F%203%3B%0D%0A%20%20%20%20%20%20%20%20return%20x%20%3D%3D%3D%200%0D%0A%20%20%20%20%20%20%20%20%20%20%3F%200%0D%0A%20%20%20%20%20%20%20%20%20%20%3A%20x%20%3D%3D%3D%201%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%201%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3A%20-Math.pow(2%2C%2010%20*%20x%20-%2010)%20*%20Math.sin((x%20*%2010%20-%2010.75)%20*%20c4)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20case%20%22out%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20const%20c4%20%3D%20(2%20*%20Math.PI)%20%2F%203%3B%0D%0A%20%20%20%20%20%20%20%20return%20x%20%3D%3D%3D%200%0D%0A%20%20%20%20%20%20%20%20%20%20%3F%200%0D%0A%20%20%20%20%20%20%20%20%20%20%3A%20x%20%3D%3D%3D%201%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%201%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Math.pow(2%2C%20-10%20*%20x)%20*%20Math.sin((x%20*%2010%20-%200.75)%20*%20c4)%20%2B%201%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20case%20%22in%20out%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20const%20c5%20%3D%20(2%20*%20Math.PI)%20%2F%204.5%3B%0D%0A%20%20%20%20%20%20%20%20return%20x%20%3D%3D%3D%200%0D%0A%20%20%20%20%20%20%20%20%20%20%3F%200%0D%0A%20%20%20%20%20%20%20%20%20%20%3A%20x%20%3D%3D%3D%201%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%201%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3A%20x%20%3C%200.5%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20-(Math.pow(2%2C%2020%20*%20x%20-%2010)%20*%20Math.sin((20%20*%20x%20-%2011.125)%20*%20c5))%20%2F%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%202%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20(Math.pow(2%2C%20-20%20*%20x%20%2B%2010)%20*%20Math.sin((20%20*%20x%20-%2011.125)%20*%20c5))%20%2F%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%202%20%2B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%201%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20default%3A%0D%0A%20%20%20%20%20%20%20%20return%200%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%3B%0D%0A%0D%0A%20%20const%20bounce%20%3D%20(x%2C%20dir)%20%3D%3E%20%7B%0D%0A%20%20%20%20switch%20(dir)%20%7B%0D%0A%20%20%20%20%20%20case%20%22in%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%201%20-%20bounce(1%20-%20x%2C%20%22out%22)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20case%20%22out%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20const%20n1%20%3D%207.5625%3B%0D%0A%20%20%20%20%20%20%20%20const%20d1%20%3D%202.75%3B%0D%0A%20%20%20%20%20%20%20%20if%20(x%20%3C%201%20%2F%20d1)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20return%20n1%20*%20x%20*%20x%3B%0D%0A%20%20%20%20%20%20%20%20%7D%20else%20if%20(x%20%3C%202%20%2F%20d1)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20return%20n1%20*%20(x%20-%3D%201.5%20%2F%20d1)%20*%20x%20%2B%200.75%3B%0D%0A%20%20%20%20%20%20%20%20%7D%20else%20if%20(x%20%3C%202.5%20%2F%20d1)%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20return%20n1%20*%20(x%20-%3D%202.25%20%2F%20d1)%20*%20x%20%2B%200.9375%3B%0D%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20return%20n1%20*%20(x%20-%3D%202.625%20%2F%20d1)%20*%20x%20%2B%200.984375%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20case%20%22in%20out%22%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20x%20%3C%200.5%0D%0A%20%20%20%20%20%20%20%20%20%20%3F%20(1%20-%20bounce(1%20-%202%20*%20x%2C%20%22out%22))%20%2F%202%0D%0A%20%20%20%20%20%20%20%20%20%20%3A%20(1%20%2B%20bounce(2%20*%20x%20-%201%2C%20%22out%22))%20%2F%202%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20default%3A%0D%0A%20%20%20%20%20%20%20%20return%200%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%3B%0D%0A%0D%0A%20%20const%20EasingMethods%20%3D%20%7B%0D%0A%20%20%20%20linear%2C%0D%0A%20%20%20%20sine%2C%0D%0A%20%20%20%20quad%2C%0D%0A%20%20%20%20cubic%2C%0D%0A%20%20%20%20quart%2C%0D%0A%20%20%20%20quint%2C%0D%0A%20%20%20%20expo%2C%0D%0A%20%20%20%20circ%2C%0D%0A%20%20%20%20back%2C%0D%0A%20%20%20%20elastic%2C%0D%0A%20%20%20%20bounce%2C%0D%0A%20%20%7D%3B%0D%0A%0D%0A%20%20class%20Tween%20%7B%0D%0A%20%20%20%20getInfo()%20%7B%0D%0A%20%20%20%20%20%20return%20%7B%0D%0A%20%20%20%20%20%20%20%20id%3A%20%22jeremygamerTweening%22%2C%0D%0A%20%20%20%20%20%20%20%20name%3A%20Scratch.translate(%22Tweening%22)%2C%0D%0A%20%20%20%20%20%20%20%20blocks%3A%20%5B%0D%0A%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22tweenValue%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%5BMODE%5D%20ease%20%5BDIRECTION%5D%20%5BSTART%5D%20to%20%5BEND%5D%20by%20%5BAMOUNT%5D%25%22%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20BlockType.REPORTER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20MODE%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.STRING%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22modes%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20DIRECTION%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.STRING%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22direction%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20START%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.NUMBER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%200%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20END%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.NUMBER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20100%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20AMOUNT%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.NUMBER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%2050%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22tweenVariable%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22tween%20variable%20%5BVAR%5D%20to%20%5BVALUE%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20BlockType.COMMAND%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20VAR%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.STRING%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22vars%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20VALUE%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.NUMBER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20100%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20SEC%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.NUMBER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%201%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20MODE%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.STRING%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22modes%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20DIRECTION%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.STRING%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22direction%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22tweenXY%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22tween%20to%20x%3A%20%5BX%5D%20y%3A%20%5BY%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20BlockType.COMMAND%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20PROPERTY%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.STRING%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22properties%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20X%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.NUMBER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20100%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Y%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.NUMBER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20100%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20SEC%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.NUMBER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%201%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20MODE%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.STRING%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22modes%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20DIRECTION%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.STRING%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22direction%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22tweenProperty%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22tween%20%5BPROPERTY%5D%20to%20%5BVALUE%5D%20over%20%5BSEC%5D%20seconds%20using%20%5BMODE%5D%20ease%20%5BDIRECTION%5D%22%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20BlockType.COMMAND%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20PROPERTY%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.STRING%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22properties%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20VALUE%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.NUMBER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20100%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20SEC%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.NUMBER%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%201%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20MODE%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.STRING%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22modes%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20DIRECTION%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20ArgumentType.STRING%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22direction%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%5D%2C%0D%0A%20%20%20%20%20%20%20%20menus%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20modes%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22linear%22)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22linear%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22sine%22)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22sine%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22quad%22)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22quad%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22cubic%22)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22cubic%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22quart%22)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22quart%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22quint%22)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22quint%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22expo%22)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22expo%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22circ%22)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22circ%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22back%22)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22back%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22elastic%22)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22elastic%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22bounce%22)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22bounce%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20direction%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22in%22)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22in%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22out%22)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22out%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22in%20out%22)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22in%20out%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20vars%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20false%2C%20%2F%2F%20for%20Scratch%20parity%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%22getVariables%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20properties%3A%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22x%20position%22)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22x%20position%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22y%20position%22)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22y%20position%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22direction%22)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22direction%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22size%22)%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22size%22%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%20%20%7D%2C%0D%0A%20%20%20%20%20%20%7D%3B%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20getVariables()%20%7B%0D%0A%20%20%20%20%20%20const%20variables%20%3D%0D%0A%20%20%20%20%20%20%20%20typeof%20Blockly%20%3D%3D%3D%20%22undefined%22%0D%0A%20%20%20%20%20%20%20%20%20%20%3F%20%5B%5D%0D%0A%20%20%20%20%20%20%20%20%20%20%3A%20Blockly.getMainWorkspace()%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getVariableMap()%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20%40ts-expect-error%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getVariablesOfType(%22%22)%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.map((model)%20%3D%3E%20(%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20model.name%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20model.getId()%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D))%3B%0D%0A%20%20%20%20%20%20if%20(variables.length%20%3E%200)%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20variables%3B%0D%0A%20%20%20%20%20%20%7D%20else%20%7B%0D%0A%20%20%20%20%20%20%20%20return%20%5B%7B%20text%3A%20%22%22%2C%20value%3A%20%22%22%20%7D%5D%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20tweenValue(args)%20%7B%0D%0A%20%20%20%20%20%20const%20easeMethod%20%3D%20Cast.toString(args.MODE)%3B%0D%0A%20%20%20%20%20%20const%20easeDirection%20%3D%20Cast.toString(args.DIRECTION)%3B%0D%0A%20%20%20%20%20%20const%20start%20%3D%20Cast.toNumber(args.START)%3B%0D%0A%20%20%20%20%20%20const%20end%20%3D%20Cast.toNumber(args.END)%3B%0D%0A%20%20%20%20%20%20const%20progress%20%3D%20Cast.toNumber(args.AMOUNT)%20%2F%20100%3B%0D%0A%0D%0A%20%20%20%20%20%20if%20(!Object.prototype.hasOwnProperty.call(EasingMethods%2C%20easeMethod))%20%7B%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20Unknown%20method%0D%0A%20%20%20%20%20%20%20%20return%20start%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20const%20easingFunction%20%3D%20EasingMethods%5BeaseMethod%5D%3B%0D%0A%0D%0A%20%20%20%20%20%20const%20tweened%20%3D%20easingFunction(progress%2C%20easeDirection)%3B%0D%0A%20%20%20%20%20%20return%20interpolate(tweened%2C%20start%2C%20end)%3B%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20_tweenValue(args%2C%20util%2C%20id%2C%20valueArgName%2C%20currentValue)%20%7B%0D%0A%20%20%20%20%20%20%2F%2F%20Only%20use%20args%20on%20first%20run.%20For%20later%20executions%20grab%20everything%20from%20stackframe.%0D%0A%20%20%20%20%20%20%2F%2F%20This%20ensures%20that%20if%20the%20arguments%20change%2C%20the%20tweening%20won't%20change.%20This%20matches%0D%0A%20%20%20%20%20%20%2F%2F%20the%20vanilla%20Scratch%20glide%20blocks.%0D%0A%20%20%20%20%20%20const%20state%20%3D%20util.stackFrame%5Bid%5D%3B%0D%0A%0D%0A%20%20%20%20%20%20if%20(!state)%20%7B%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20First%20run%2C%20need%20to%20start%20timer%0D%0A%20%20%20%20%20%20%20%20util.yield()%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20If%20multiple%20values%20being%20tweened%20in%20same%20block%2C%20only%20start%20timer%20stack%20timer%20once.%0D%0A%20%20%20%20%20%20%20%20if%20(util.stackTimerNeedsInit())%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20const%20durationMS%20%3D%20Math.max(0%2C%201000%20*%20Cast.toNumber(args.SEC))%3B%0D%0A%20%20%20%20%20%20%20%20%20%20util.startStackTimer(durationMS)%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20%20%20%20%20const%20easeMethod%20%3D%20Cast.toString(args.MODE)%3B%0D%0A%20%20%20%20%20%20%20%20const%20easeDirection%20%3D%20Cast.toString(args.DIRECTION)%3B%0D%0A%20%20%20%20%20%20%20%20const%20start%20%3D%20currentValue%3B%0D%0A%20%20%20%20%20%20%20%20const%20end%20%3D%20Cast.toNumber(args%5BvalueArgName%5D)%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20let%20easingFunction%3B%0D%0A%20%20%20%20%20%20%20%20if%20(Object.prototype.hasOwnProperty.call(EasingMethods%2C%20easeMethod))%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20easingFunction%20%3D%20EasingMethods%5BeaseMethod%5D%3B%0D%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20easingFunction%20%3D%20EasingMethods.linear%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20%20%20%20%20util.stackFrame%5Bid%5D%20%3D%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20easingFunction%2C%0D%0A%20%20%20%20%20%20%20%20%20%20easeDirection%2C%0D%0A%20%20%20%20%20%20%20%20%20%20start%2C%0D%0A%20%20%20%20%20%20%20%20%20%20end%2C%0D%0A%20%20%20%20%20%20%20%20%7D%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20return%20start%3B%0D%0A%20%20%20%20%20%20%7D%20else%20if%20(util.stackTimerFinished())%20%7B%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20Done%0D%0A%20%20%20%20%20%20%20%20return%20util.stackFrame%5Bid%5D.end%3B%0D%0A%20%20%20%20%20%20%7D%20else%20%7B%0D%0A%20%20%20%20%20%20%20%20%2F%2F%20Still%20running%0D%0A%20%20%20%20%20%20%20%20util.yield()%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20const%20progress%20%3D%0D%0A%20%20%20%20%20%20%20%20%20%20util.stackFrame.timer.timeElapsed()%20%2F%20util.stackFrame.duration%3B%0D%0A%20%20%20%20%20%20%20%20const%20tweened%20%3D%20state.easingFunction(progress%2C%20state.easeDirection)%3B%0D%0A%20%20%20%20%20%20%20%20return%20interpolate(tweened%2C%20state.start%2C%20state.end)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20tweenVariable(args%2C%20util)%20%7B%0D%0A%20%20%20%20%20%20const%20variable%20%3D%20util.target.lookupVariableById(args.VAR)%3B%0D%0A%20%20%20%20%20%20const%20value%20%3D%20this._tweenValue(args%2C%20util%2C%20%22%22%2C%20%22VALUE%22%2C%20variable.value)%3B%0D%0A%20%20%20%20%20%20if%20(variable%20%26%26%20variable.type%20%3D%3D%3D%20%22%22)%20%7B%0D%0A%20%20%20%20%20%20%20%20variable.value%20%3D%20value%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20tweenXY(args%2C%20util)%20%7B%0D%0A%20%20%20%20%20%20const%20x%20%3D%20this._tweenValue(args%2C%20util%2C%20%22x%22%2C%20%22X%22%2C%20util.target.x)%3B%0D%0A%20%20%20%20%20%20const%20y%20%3D%20this._tweenValue(args%2C%20util%2C%20%22y%22%2C%20%22Y%22%2C%20util.target.y)%3B%0D%0A%20%20%20%20%20%20util.target.setXY(x%2C%20y)%3B%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20tweenProperty(args%2C%20util)%20%7B%0D%0A%20%20%20%20%20%20let%20currentValue%20%3D%200%3B%0D%0A%20%20%20%20%20%20if%20(args.PROPERTY%20%3D%3D%3D%20%22x%20position%22)%20%7B%0D%0A%20%20%20%20%20%20%20%20currentValue%20%3D%20util.target.x%3B%0D%0A%20%20%20%20%20%20%7D%20else%20if%20(args.PROPERTY%20%3D%3D%3D%20%22y%20position%22)%20%7B%0D%0A%20%20%20%20%20%20%20%20currentValue%20%3D%20util.target.y%3B%0D%0A%20%20%20%20%20%20%7D%20else%20if%20(args.PROPERTY%20%3D%3D%3D%20%22direction%22)%20%7B%0D%0A%20%20%20%20%20%20%20%20currentValue%20%3D%20util.target.direction%3B%0D%0A%20%20%20%20%20%20%7D%20else%20if%20(args.PROPERTY%20%3D%3D%3D%20%22size%22)%20%7B%0D%0A%20%20%20%20%20%20%20%20currentValue%20%3D%20util.target.size%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20%20%20const%20value%20%3D%20this._tweenValue(args%2C%20util%2C%20%22%22%2C%20%22VALUE%22%2C%20currentValue)%3B%0D%0A%0D%0A%20%20%20%20%20%20if%20(args.PROPERTY%20%3D%3D%3D%20%22x%20position%22)%20%7B%0D%0A%20%20%20%20%20%20%20%20util.target.setXY(value%2C%20util.target.y)%3B%0D%0A%20%20%20%20%20%20%7D%20else%20if%20(args.PROPERTY%20%3D%3D%3D%20%22y%20position%22)%20%7B%0D%0A%20%20%20%20%20%20%20%20util.target.setXY(util.target.x%2C%20value)%3B%0D%0A%20%20%20%20%20%20%7D%20else%20if%20(args.PROPERTY%20%3D%3D%3D%20%22direction%22)%20%7B%0D%0A%20%20%20%20%20%20%20%20util.target.setDirection(value)%3B%0D%0A%20%20%20%20%20%20%7D%20else%20if%20(args.PROPERTY%20%3D%3D%3D%20%22size%22)%20%7B%0D%0A%20%20%20%20%20%20%20%20util.target.setSize(value)%3B%0D%0A%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%20%20%7D%0D%0A%0D%0A%20%20Scratch.extensions.register(new%20Tween())%3B%0D%0A%7D)(Scratch)%3B%0D%0A%20%7D)(Scratch)%3B","data:text/javascript;,(function(Scratch)%20%7B%20%2F%2F%20Name%3A%20More%20Timers%0A%2F%2F%20ID%3A%20lmsTimers%0A%2F%2F%20Description%3A%20Control%20several%20timers%20at%20once.%0A%2F%2F%20By%3A%20LilyMakesThings%20%3Chttps%3A%2F%2Fscratch.mit.edu%2Fusers%2FLilyMakesThings%2F%3E%0A%2F%2F%20License%3A%20MIT%20AND%20LGPL-3.0%0A%0A%2F*%20generated%20l10n%20code%20*%2FScratch.translate.setup(%7B%22de%22%3A%7B%22_More%20Timers%22%3A%22Mehr%20Stoppuhren%22%7D%2C%22fi%22%3A%7B%22_More%20Timers%22%3A%22Enemm%C3%A4n%20ajastimia%22%2C%22_change%20timer%20%5BTIMER%5D%20by%20%5BNUM%5D%22%3A%22lis%C3%A4%C3%A4%20ajastimeen%20%5BTIMER%5D%20arvo%20%5BNUM%5D%22%2C%22_list%20existing%20timers%22%3A%22olemassa%20olevat%20ajastimet%22%2C%22_pause%20timer%20%5BTIMER%5D%22%3A%22keskeyt%C3%A4%20ajastin%20%5BTIMER%5D%22%2C%22_remove%20all%20timers%22%3A%22poista%20kaikki%20ajastimet%22%2C%22_remove%20timer%20%5BTIMER%5D%22%3A%22poista%20ajastin%20%5BTIMER%5D%22%2C%22_resume%20timer%20%5BTIMER%5D%22%3A%22jatka%20ajastinta%20%5BTIMER%5D%22%2C%22_set%20timer%20%5BTIMER%5D%20to%20%5BNUM%5D%22%3A%22aseta%20ajastin%20%5BTIMER%5D%20arvoon%20%5BNUM%5D%22%2C%22_start%2Freset%20timer%20%5BTIMER%5D%22%3A%22k%C3%A4ynnist%C3%A4%2Fnollaa%20ajastin%20%5BTIMER%5D%22%2C%22_timer%20%5BTIMER%5D%22%3A%22ajastin%20%5BTIMER%5D%22%2C%22_timer%20%5BTIMER%5D%20exists%3F%22%3A%22onko%20ajastin%20%5BTIMER%5D%20olemassa%3F%22%2C%22_when%20timer%20%5BTIMER%5D%20%5BOP%5D%20%5BNUM%5D%22%3A%22kun%20ajastin%20%5BTIMER%5D%20%5BOP%5D%20%5BNUM%5D%22%7D%2C%22it%22%3A%7B%22_More%20Timers%22%3A%22Altri%20Cronometri%22%7D%2C%22ja%22%3A%7B%22_More%20Timers%22%3A%22%E3%81%9D%E3%81%AE%E4%BB%96%E3%81%AE%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC%22%2C%22_change%20timer%20%5BTIMER%5D%20by%20%5BNUM%5D%22%3A%22%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC%5BTIMER%5D%E3%82%92%5BNUM%5D%E3%81%9A%E3%81%A4%E5%A4%89%E3%81%88%E3%82%8B%22%2C%22_list%20existing%20timers%22%3A%22%E5%AD%98%E5%9C%A8%E3%81%99%E3%82%8B%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC%E3%81%AE%E3%83%AA%E3%82%B9%E3%83%88%22%2C%22_pause%20timer%20%5BTIMER%5D%22%3A%22%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC%5BTIMER%5D%E3%82%92%E4%B8%80%E6%99%82%E5%81%9C%E6%AD%A2%E3%81%99%E3%82%8B%22%2C%22_remove%20all%20timers%22%3A%22%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC%E3%82%92%E3%81%99%E3%81%B9%E3%81%A6%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%22%2C%22_remove%20timer%20%5BTIMER%5D%22%3A%22%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC%5BTIMER%5D%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%22%2C%22_resume%20timer%20%5BTIMER%5D%22%3A%22%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC%5BTIMER%5D%E3%82%92%E5%86%8D%E9%96%8B%E3%81%99%E3%82%8B%22%2C%22_set%20timer%20%5BTIMER%5D%20to%20%5BNUM%5D%22%3A%22%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC%5BTIMER%5D%E3%82%92%5BNUM%5D%E7%A7%92%E3%81%AB%E3%81%99%E3%82%8B%22%2C%22_start%2Freset%20timer%20%5BTIMER%5D%22%3A%22%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC%5BTIMER%5D%E3%82%92%E9%96%8B%E5%A7%8B%2F%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%22%2C%22_timer%20%5BTIMER%5D%22%3A%22%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC%5BTIMER%5D%22%2C%22_timer%20%5BTIMER%5D%20exists%3F%22%3A%22%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC%5BTIMER%5D%E3%81%8C%E5%AD%98%E5%9C%A8%E3%81%99%E3%82%8B%22%2C%22_when%20timer%20%5BTIMER%5D%20%5BOP%5D%20%5BNUM%5D%22%3A%22%5BTIMER%5D%5BOP%5D%5BNUM%5D%E3%81%AE%E3%81%A8%E3%81%8D%22%7D%2C%22ko%22%3A%7B%22_More%20Timers%22%3A%22%EC%B6%94%EA%B0%80%20%ED%83%80%EC%9D%B4%EB%A8%B8%22%2C%22_change%20timer%20%5BTIMER%5D%20by%20%5BNUM%5D%22%3A%22%ED%83%80%EC%9D%B4%EB%A8%B8%20%5BTIMER%5D%EC%9D%84(%EB%A5%BC)%20%5BNUM%5D%EB%A7%8C%ED%81%BC%20%EB%B0%94%EA%BE%B8%EA%B8%B0%22%2C%22_list%20existing%20timers%22%3A%22%EC%A1%B4%EC%9E%AC%ED%95%98%EB%8A%94%20%ED%83%80%EC%9D%B4%EB%A8%B8%20%EB%AA%A9%EB%A1%9D%22%2C%22_pause%20timer%20%5BTIMER%5D%22%3A%22%ED%83%80%EC%9D%B4%EB%A8%B8%20%5BTIMER%5D%20%EC%9D%BC%EC%8B%9C%EC%A0%95%EC%A7%80%ED%95%98%EA%B8%B0%22%2C%22_remove%20all%20timers%22%3A%22%EB%AA%A8%EB%93%A0%20%ED%83%80%EC%9D%B4%EB%A8%B8%20%EC%A0%9C%EA%B1%B0%ED%95%98%EA%B8%B0%22%2C%22_remove%20timer%20%5BTIMER%5D%22%3A%22%ED%83%80%EC%9D%B4%EB%A8%B8%20%5BTIMER%5D%EC%9D%84(%EB%A5%BC)%20%EC%A0%9C%EA%B1%B0%ED%95%98%EA%B8%B0%22%2C%22_resume%20timer%20%5BTIMER%5D%22%3A%22%ED%83%80%EC%9D%B4%EB%A8%B8%20%5BTIMER%5D%20%EC%9E%AC%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0%22%2C%22_set%20timer%20%5BTIMER%5D%20to%20%5BNUM%5D%22%3A%22%ED%83%80%EC%9D%B4%EB%A8%B8%20%5BTIMER%5D%EC%9D%84(%EB%A5%BC)%20%5BNUM%5D(%EC%9C%BC)%EB%A1%9C%20%EC%A0%95%ED%95%98%EA%B8%B0%22%2C%22_start%2Freset%20timer%20%5BTIMER%5D%22%3A%22%ED%83%80%EC%9D%B4%EB%A8%B8%20%5BTIMER%5D%20%EC%8B%9C%EC%9E%91%C2%B7%EC%B4%88%EA%B8%B0%ED%99%94%ED%95%98%EA%B8%B0%22%2C%22_timer%20%5BTIMER%5D%22%3A%22%ED%83%80%EC%9D%B4%EB%A8%B8%20%5BTIMER%5D%20%EA%B0%92%22%2C%22_timer%20%5BTIMER%5D%20exists%3F%22%3A%22%ED%83%80%EC%9D%B4%EB%A8%B8%20%5BTIMER%5D%EC%9D%B4(%EA%B0%80)%20%EC%A1%B4%EC%9E%AC%ED%95%98%EB%8A%94%EA%B0%80%3F%22%2C%22_when%20timer%20%5BTIMER%5D%20%5BOP%5D%20%5BNUM%5D%22%3A%22%ED%83%80%EC%9D%B4%EB%A8%B8%20%5BTIMER%5D%EC%9D%B4(%EA%B0%80)%20%5BOP%5D%5BNUM%5D%20%EC%9D%BC%20%EB%95%8C%22%7D%2C%22nb%22%3A%7B%22_More%20Timers%22%3A%22Flere%20tidtakere%22%7D%2C%22nl%22%3A%7B%22_More%20Timers%22%3A%22Meer%20klokken%22%2C%22_change%20timer%20%5BTIMER%5D%20by%20%5BNUM%5D%22%3A%22verander%20klok%20%5BTIMER%5D%20met%20%5BNUM%5D%22%2C%22_list%20existing%20timers%22%3A%22alle%20huidige%20klokken%22%2C%22_pause%20timer%20%5BTIMER%5D%22%3A%22pauzeer%20klok%20%5BTIMER%5D%22%2C%22_remove%20all%20timers%22%3A%22verwijder%20alle%20klokken%22%2C%22_remove%20timer%20%5BTIMER%5D%22%3A%22verwijder%20klok%20%5BTIMER%5D%22%2C%22_resume%20timer%20%5BTIMER%5D%22%3A%22hervat%20klok%20%5BTIMER%5D%22%2C%22_set%20timer%20%5BTIMER%5D%20to%20%5BNUM%5D%22%3A%22maak%20klok%20%5BTIMER%5D%20%5BNUM%5D%22%2C%22_start%2Freset%20timer%20%5BTIMER%5D%22%3A%22start%2Freset%20klok%20%5BTIMER%5D%22%2C%22_timer%20%5BTIMER%5D%22%3A%22klok%20%5BTIMER%5D%22%2C%22_timer%20%5BTIMER%5D%20exists%3F%22%3A%22klok%20%5BTIMER%5D%20bestaat%3F%22%2C%22_when%20timer%20%5BTIMER%5D%20%5BOP%5D%20%5BNUM%5D%22%3A%22wanneer%20klok%20%5BTIMER%5D%20%5BOP%5D%20%5BNUM%5D%22%7D%2C%22ru%22%3A%7B%22_More%20Timers%22%3A%22%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%A2%D0%B0%D0%B9%D0%BC%D0%B5%D1%80%D0%BE%D0%B2%22%2C%22_change%20timer%20%5BTIMER%5D%20by%20%5BNUM%5D%22%3A%22%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C%20%D1%82%D0%B0%D0%B9%D0%BC%D0%B5%D1%80%20%5BTIMER%5D%20%D0%BD%D0%B0%20%5BNUM%5D%22%2C%22_list%20existing%20timers%22%3A%22%D1%81%D0%BF%D0%B8%D1%81%D0%BE%D0%BA%20%D1%81%D1%83%D1%89%D0%B5%D1%81%D1%82%D0%B2%D1%83%D1%8E%D1%89%D0%B8%D1%85%20%D1%82%D0%B0%D0%B9%D0%BC%D0%B5%D1%80%D0%BE%D0%B2%22%2C%22_pause%20timer%20%5BTIMER%5D%22%3A%22%D0%BF%D1%80%D0%B8%D0%BE%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C%20%D1%82%D0%B0%D0%B9%D0%BC%D0%B5%D1%80%20%5BTIMER%5D%22%2C%22_remove%20all%20timers%22%3A%22%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C%20%D0%B2%D1%81%D0%B5%20%D1%82%D0%B0%D0%B9%D0%BC%D0%B5%D1%80%D1%8B%22%2C%22_remove%20timer%20%5BTIMER%5D%22%3A%22%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C%20%D1%82%D0%B0%D0%B9%D0%BC%D0%B5%D1%80%20%5BTIMER%5D%22%2C%22_resume%20timer%20%5BTIMER%5D%22%3A%22%D0%BF%D1%80%D0%BE%D0%B4%D0%BE%D0%BB%D0%B6%D0%B8%D1%82%D1%8C%20%D1%82%D0%B0%D0%B9%D0%BC%D0%B5%D1%80%20%5BTIMER%5D%22%2C%22_set%20timer%20%5BTIMER%5D%20to%20%5BNUM%5D%22%3A%22%D0%B7%D0%B0%D0%B4%D0%B0%D1%82%D1%8C%20%D1%82%D0%B0%D0%B9%D0%BC%D0%B5%D1%80%20%5BTIMER%5D%20%D0%BD%D0%B0%20%5BNUM%5D%22%2C%22_start%2Freset%20timer%20%5BTIMER%5D%22%3A%22%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D1%82%D0%B8%D1%82%D1%8C%2F%D1%81%D0%B1%D1%80%D0%BE%D1%81%D0%B8%D1%82%D1%8C%20%D1%82%D0%B0%D0%B9%D0%BC%D0%B5%D1%80%20%5BTIMER%5D%22%2C%22_timer%20%5BTIMER%5D%22%3A%22%D1%82%D0%B0%D0%B9%D0%BC%D0%B5%D1%80%20%5BTIMER%5D%22%2C%22_timer%20%5BTIMER%5D%20exists%3F%22%3A%22%D1%82%D0%B0%D0%B9%D0%BC%D0%B5%D1%80%20%5BTIMER%5D%20%D1%81%D1%83%D1%89%D0%B5%D1%81%D1%82%D0%B2%D1%83%D0%B5%D1%82%3F%22%2C%22_when%20timer%20%5BTIMER%5D%20%5BOP%5D%20%5BNUM%5D%22%3A%22%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0%20%D1%82%D0%B0%D0%B9%D0%BC%D0%B5%D1%80%20%5BTIMER%5D%20%5BOP%5D%20%5BNUM%5D%22%7D%2C%22tr%22%3A%7B%22_More%20Timers%22%3A%22Daha%20Fazla%20Zamanlay%C4%B1c%C4%B1%22%7D%2C%22uk%22%3A%7B%22_More%20Timers%22%3A%22%D0%91%D1%96%D0%BB%D1%8C%D1%88%D0%B5%20%D0%A2%D0%B0%D0%B9%D0%BC%D0%B5%D1%80%D1%96%D0%B2%22%7D%2C%22zh-cn%22%3A%7B%22_More%20Timers%22%3A%22%E6%9B%B4%E5%A4%9A%E8%AE%A1%E6%97%B6%E5%99%A8%22%2C%22_change%20timer%20%5BTIMER%5D%20by%20%5BNUM%5D%22%3A%22%E5%B0%86%E8%AE%A1%E6%97%B6%E5%99%A8%5BTIMER%5D%E5%A2%9E%E5%8A%A0%5BNUM%5D%22%2C%22_list%20existing%20timers%22%3A%22%E5%88%97%E5%87%BA%E5%AD%98%E5%9C%A8%E7%9A%84%E8%AE%A1%E6%97%B6%E5%99%A8%22%2C%22_pause%20timer%20%5BTIMER%5D%22%3A%22%E6%9A%82%E5%81%9C%E8%AE%A1%E6%97%B6%E5%99%A8%5BTIMER%5D%22%2C%22_remove%20all%20timers%22%3A%22%E5%88%A0%E9%99%A4%E6%89%80%E6%9C%89%E8%AE%A1%E6%97%B6%E5%99%A8%22%2C%22_remove%20timer%20%5BTIMER%5D%22%3A%22%E5%88%A0%E9%99%A4%E8%AE%A1%E6%97%B6%E5%99%A8%5BTIMER%5D%22%2C%22_resume%20timer%20%5BTIMER%5D%22%3A%22%E7%BB%A7%E7%BB%AD%E8%AE%A1%E6%97%B6%E5%99%A8%5BTIMER%5D%22%2C%22_set%20timer%20%5BTIMER%5D%20to%20%5BNUM%5D%22%3A%22%E5%B0%86%E8%AE%A1%E6%97%B6%E5%99%A8%5BTIMER%5D%E8%AE%BE%E4%B8%BA%5BNUM%5D%22%2C%22_start%2Freset%20timer%20%5BTIMER%5D%22%3A%22%E5%BC%80%E5%A7%8B%2F%E9%87%8D%E5%90%AF%E8%AE%A1%E6%97%B6%E5%99%A8%5BTIMER%5D%22%2C%22_timer%20%5BTIMER%5D%22%3A%22%E8%AE%A1%E6%97%B6%E5%99%A8%5BTIMER%5D%22%2C%22_timer%20%5BTIMER%5D%20exists%3F%22%3A%22%E8%AE%A1%E6%97%B6%E5%99%A8%5BTIMER%5D%E5%AD%98%E5%9C%A8%EF%BC%9F%22%2C%22_when%20timer%20%5BTIMER%5D%20%5BOP%5D%20%5BNUM%5D%22%3A%22%E5%BD%93%E8%AE%A1%E6%97%B6%E5%99%A8%5BTIMER%5D%5BOP%5D%5BNUM%5D%22%7D%7D)%3B%2F*%20end%20generated%20l10n%20code%20*%2F(function%20(Scratch)%20%7B%0A%20%20%22use%20strict%22%3B%0A%0A%20%20const%20vm%20%3D%20Scratch.vm%3B%0A%0A%20%20%2F**%0A%20%20%20*%20%40typedef%20Timer%0A%20%20%20*%20%40property%20%7Bnumber%7D%20startTime%0A%20%20%20*%20%40property%20%7Bnumber%7D%20pauseTime%0A%20%20%20*%20%40property%20%7Bboolean%7D%20paused%0A%20%20%20*%2F%0A%0A%20%20%2F**%20%40type%20%7BRecord%3Cstring%2C%20Timer%3E%7D%20*%2F%0A%20%20let%20timers%20%3D%20Object.create(null)%3B%0A%0A%20%20%2F**%0A%20%20%20*%20%40param%20%7BTimer%7D%20timer%0A%20%20%20*%20%40return%20%7Bnumber%7D%0A%20%20%20*%2F%0A%20%20const%20timerValue%20%3D%20(timer)%20%3D%3E%20%7B%0A%20%20%20%20return%20(%0A%20%20%20%20%20%20((timer.paused%20%3F%200%20%3A%20Math.floor(performance.now())%20-%20timer.startTime)%20%2B%0A%20%20%20%20%20%20%20%20timer.pauseTime)%20%2F%0A%20%20%20%20%20%201000%0A%20%20%20%20)%3B%0A%20%20%7D%3B%0A%0A%20%20class%20Timers%20%7B%0A%20%20%20%20constructor()%20%7B%0A%20%20%20%20%20%20vm.runtime.on(%22PROJECT_START%22%2C%20()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20timers%20%3D%20Object.create(null)%3B%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getInfo()%20%7B%0A%20%20%20%20%20%20return%20%7B%0A%20%20%20%20%20%20%20%20id%3A%20%22lmsTimers%22%2C%0A%20%20%20%20%20%20%20%20name%3A%20Scratch.translate(%22More%20Timers%22)%2C%0A%20%20%20%20%20%20%20%20color1%3A%20%22%235cb1d6%22%2C%0A%20%20%20%20%20%20%20%20color2%3A%20%22%23428faf%22%2C%0A%20%20%20%20%20%20%20%20color3%3A%20%22%233281a3%22%2C%0A%20%20%20%20%20%20%20%20blocks%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22whenTimerOp%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.HAT%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_sensing%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22when%20timer%20%5BTIMER%5D%20%5BOP%5D%20%5BNUM%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TIMER%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22timer%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20OP%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22operation%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20NUM%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.NUMBER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%225%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22startResetTimer%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_sensing%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22start%2Freset%20timer%20%5BTIMER%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TIMER%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22timer%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22valueOfTimer%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_sensing%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22timer%20%5BTIMER%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TIMER%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22timer%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22pauseTimer%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_sensing%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22pause%20timer%20%5BTIMER%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TIMER%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22timer%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22resumeTimer%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_sensing%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22resume%20timer%20%5BTIMER%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TIMER%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22timer%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setTimer%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_sensing%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22set%20timer%20%5BTIMER%5D%20to%20%5BNUM%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TIMER%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22timer%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20NUM%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.NUMBER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%2210%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22changeTimer%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_sensing%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22change%20timer%20%5BTIMER%5D%20by%20%5BNUM%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TIMER%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22timer%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20NUM%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.NUMBER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%2210%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22removeTimer%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_sensing%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22remove%20timer%20%5BTIMER%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TIMER%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22timer%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22removeTimers%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_sensing%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22remove%20all%20timers%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22timerExists%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.BOOLEAN%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_sensing%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22timer%20%5BTIMER%5D%20exists%3F%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TIMER%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22timer%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22listExistingTimers%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_sensing%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22list%20existing%20timers%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20menus%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20operation%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20false%20for%20Scratch%20parity%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%22%3E%22%2C%20%22%3C%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20whenTimerOp(args)%20%7B%0A%20%20%20%20%20%20if%20(!timers%5Bargs.TIMER%5D)%20return%20false%3B%0A%20%20%20%20%20%20const%20value%20%3D%20timerValue(timers%5Bargs.TIMER%5D)%3B%0A%20%20%20%20%20%20if%20(args.OP%20%3D%3D%3D%20%22%3E%22)%20return%20value%20%3E%20args.NUM%3B%0A%20%20%20%20%20%20if%20(args.OP%20%3D%3D%3D%20%22%3C%22)%20return%20value%20%3C%20args.NUM%3B%0A%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20startResetTimer(args)%20%7B%0A%20%20%20%20%20%20timers%5Bargs.TIMER%5D%20%3D%20%7B%0A%20%20%20%20%20%20%20%20startTime%3A%20Math.floor(performance.now())%2C%0A%20%20%20%20%20%20%20%20pauseTime%3A%200%2C%0A%20%20%20%20%20%20%20%20paused%3A%20false%2C%0A%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20pauseTimer(args)%20%7B%0A%20%20%20%20%20%20const%20timer%20%3D%20timers%5Bargs.TIMER%5D%3B%0A%20%20%20%20%20%20if%20(!timer)%20return%3B%0A%20%20%20%20%20%20timer.pauseTime%20%3D%20timerValue(timer)%20*%201000%3B%0A%20%20%20%20%20%20timer.paused%20%3D%20true%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20resumeTimer(args)%20%7B%0A%20%20%20%20%20%20const%20timer%20%3D%20timers%5Bargs.TIMER%5D%3B%0A%20%20%20%20%20%20if%20(!timer)%20return%3B%0A%20%20%20%20%20%20if%20(timer.paused%20%3D%3D%3D%20false)%20return%3B%0A%20%20%20%20%20%20timer.paused%20%3D%20false%3B%0A%20%20%20%20%20%20timer.startTime%20%3D%20Math.floor(performance.now())%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20valueOfTimer(args)%20%7B%0A%20%20%20%20%20%20if%20(!timers%5Bargs.TIMER%5D)%20return%20%22%22%3B%0A%20%20%20%20%20%20return%20timerValue(timers%5Bargs.TIMER%5D)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setTimer(args)%20%7B%0A%20%20%20%20%20%20timers%5Bargs.TIMER%5D%20%3D%20%7B%0A%20%20%20%20%20%20%20%20paused%3A%20false%2C%0A%20%20%20%20%20%20%20%20startTime%3A%20Math.floor(performance.now())%2C%0A%20%20%20%20%20%20%20%20pauseTime%3A%20Scratch.Cast.toNumber(args.NUM)%20*%201000%2C%0A%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20changeTimer(args)%20%7B%0A%20%20%20%20%20%20if%20(!timers%5Bargs.TIMER%5D)%20this.startResetTimer(args)%3B%0A%20%20%20%20%20%20timers%5Bargs.TIMER%5D.pauseTime%20%2B%3D%20Scratch.Cast.toNumber(args.NUM)%20*%201000%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20removeTimers(args)%20%7B%0A%20%20%20%20%20%20timers%20%3D%20Object.create(null)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20removeTimer(args)%20%7B%0A%20%20%20%20%20%20Reflect.deleteProperty(timers%2C%20args.TIMER)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20timerExists(args)%20%7B%0A%20%20%20%20%20%20return%20!!timers%5Bargs.TIMER%5D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20listExistingTimers(args)%20%7B%0A%20%20%20%20%20%20return%20Object.keys(timers).join(%22%2C%22)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20%2F%2F%20%22Extension%22%20option%20reimplementation%20by%20Xeltalliv%0A%20%20%2F%2F%20https%3A%2F%2Fgithub.com%2FXeltalliv%2Fextensions%2Fblob%2Fexamples%2Fexamples%2Fextension-colors.js%0A%0A%20%20%2F%2F%20const%20cbfsb%20%3D%20Scratch.vm.runtime._convertBlockForScratchBlocks.bind(Scratch.vm.runtime)%3B%0A%20%20%2F%2F%20Scratch.vm.runtime._convertBlockForScratchBlocks%20%3D%20function(blockInfo%2C%20categoryInfo)%20%7B%0A%20%20%2F%2F%20%20%20const%20res%20%3D%20cbfsb(blockInfo%2C%20categoryInfo)%3B%0A%20%20%2F%2F%20%20%20if%20(blockInfo.extensions)%20%7B%0A%20%20%2F%2F%20%20%20%20%20if%20(!res.json.extensions)%20res.json.extensions%20%3D%20%5B%5D%3B%0A%20%20%2F%2F%20%20%20%20%20res.json.extensions.push(...blockInfo.extensions)%3B%0A%20%20%2F%2F%20%20%20%7D%0A%20%20%2F%2F%20%20%20return%20res%3B%0A%20%20%2F%2F%20%7D%3B%0A%0A%20%20Scratch.extensions.register(new%20Timers())%3B%0A%7D)(Scratch)%3B%0A%20%7D)(Scratch)%3B","data:text/javascript;,(function(Scratch)%20%7B%20%2F%2F%20Name%3A%20Local%20Storage%0A%2F%2F%20ID%3A%20localstorage%0A%2F%2F%20Description%3A%20Store%20data%20persistently.%20Like%20cookies%2C%20but%20better.%0A%2F%2F%20License%3A%20MIT%20AND%20MPL-2.0%0A%0A%2F*%20generated%20l10n%20code%20*%2FScratch.translate.setup(%7B%22de%22%3A%7B%22_Local%20Storage%22%3A%22Speicherplatz%22%7D%2C%22fi%22%3A%7B%22_Local%20Storage%22%3A%22Paikallinen%20muisti%22%2C%22_Local%20Storage%20extension%3A%20project%20must%20run%20the%20%5C%22set%20storage%20namespace%20ID%5C%22%20block%20before%20it%20can%20use%20other%20blocks%22%3A%22Paikallinen%20muisti%20-laajennus%3A%20projektissa%20t%C3%A4ytyy%20suorittaa%20%5C%22aseta%20muistin%20nimiavaruustunnisteeksi%5C%22%20-lohko%20ennen%20kuin%20muita%20lohkoja%20voidaan%20suorittaa.%22%2C%22_delete%20all%20keys%22%3A%22poista%20kaikki%20avaimet%22%2C%22_delete%20key%20%5BKEY%5D%22%3A%22poista%20avain%20%5BKEY%5D%22%2C%22_get%20key%20%5BKEY%5D%22%3A%22avain%20%5BKEY%5D%22%2C%22_project%20title%22%3A%22projektin%20otsikko%22%2C%22_score%22%3A%22pisteet%22%2C%22_set%20key%20%5BKEY%5D%20to%20%5BVALUE%5D%22%3A%22aseta%20avain%20%5BKEY%5D%20arvoon%20%5BVALUE%5D%22%2C%22_set%20storage%20namespace%20ID%20to%20%5BID%5D%22%3A%22aseta%20muistin%20nimiavaruustunnisteeksi%20%5BID%5D%22%2C%22_when%20another%20window%20changes%20storage%22%3A%22kun%20toinen%20ikkuna%20muuttaa%20muistia%22%7D%2C%22it%22%3A%7B%22_Local%20Storage%22%3A%22Memoria%20Locale%22%2C%22_Local%20Storage%20extension%3A%20project%20must%20run%20the%20%5C%22set%20storage%20namespace%20ID%5C%22%20block%20before%20it%20can%20use%20other%20blocks%22%3A%22Estensione%20Archiviazone%20Locale%3A%20il%20progetto%20deve%20eseguire%20il%20blocco%20%5C%22imposta%20ID%20spazio%20di%20archiviazione%5C%22%20prima%20di%20usare%20gli%20altri%20blocchi%22%2C%22_delete%20all%20keys%22%3A%22cancella%20tutte%20le%20chiavi%22%2C%22_delete%20key%20%5BKEY%5D%22%3A%22cancella%20chiave%20%5BKEY%5D%22%2C%22_get%20key%20%5BKEY%5D%22%3A%22valore%20della%20chiave%20%5BKEY%5D%22%2C%22_project%20title%22%3A%22titolo%20progetto%22%2C%22_score%22%3A%22punteggio%22%2C%22_set%20key%20%5BKEY%5D%20to%20%5BVALUE%5D%22%3A%22imposta%20valore%20chiave%20%5BKEY%5D%20a%20%5BVALUE%5D%22%2C%22_set%20storage%20namespace%20ID%20to%20%5BID%5D%22%3A%22imposta%20ID%20spazio%20archiviazione%20a%20%5BID%5D%22%2C%22_when%20another%20window%20changes%20storage%22%3A%22quando%20altra%20finestra%20cambia%20spazio%20di%20archiviazione%22%7D%2C%22ja%22%3A%7B%22_Local%20Storage%22%3A%22%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8%22%2C%22_Local%20Storage%20extension%3A%20project%20must%20run%20the%20%5C%22set%20storage%20namespace%20ID%5C%22%20block%20before%20it%20can%20use%20other%20blocks%22%3A%22%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD%EF%BC%9A%E4%BB%96%E3%81%AE%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E5%89%8D%E3%81%AB%E3%80%81%E3%80%8C%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8%E3%81%AE%E5%90%8D%E5%89%8D%E3%82%92()%E3%81%AB%E3%81%99%E3%82%8B%E3%80%8D%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%22%2C%22_delete%20all%20keys%22%3A%22%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E3%82%AD%E3%83%BC%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%22%2C%22_delete%20key%20%5BKEY%5D%22%3A%22%E3%82%AD%E3%83%BC%5BKEY%5D%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%22%2C%22_get%20key%20%5BKEY%5D%22%3A%22%E3%82%AD%E3%83%BC%E3%82%92%E5%8F%96%E5%BE%97%5BKEY%5D%22%2C%22_project%20title%22%3A%22%E3%83%97%E3%83%AD%E3%83%B3%E3%83%97%E3%83%88%E3%81%AE%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB%22%2C%22_score%22%3A%22%E3%82%B9%E3%82%B3%E3%82%A2%22%2C%22_set%20key%20%5BKEY%5D%20to%20%5BVALUE%5D%22%3A%22%E3%82%AD%E3%83%BC%5BKEY%5D%E3%82%92%5BVALUE%5D%E3%81%AB%E3%81%99%E3%82%8B%22%2C%22_set%20storage%20namespace%20ID%20to%20%5BID%5D%22%3A%22%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8%E3%81%AE%E5%90%8D%E5%89%8D%E7%A9%BA%E9%96%93ID%E3%82%92%5BID%5D%E3%81%AB%E3%81%99%E3%82%8B%22%2C%22_when%20another%20window%20changes%20storage%22%3A%22%E4%BB%96%E3%81%AE%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E3%81%8C%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8%E3%82%92%E5%A4%89%E3%81%88%E3%81%9F%E3%81%A8%E3%81%8D%22%7D%2C%22ko%22%3A%7B%22_Local%20Storage%22%3A%22%EB%A1%9C%EC%BB%AC%20%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80%22%2C%22_Local%20Storage%20extension%3A%20project%20must%20run%20the%20%5C%22set%20storage%20namespace%20ID%5C%22%20block%20before%20it%20can%20use%20other%20blocks%22%3A%22%EB%A1%9C%EC%BB%AC%20%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80%20%ED%99%95%EC%9E%A5%20%EA%B8%B0%EB%8A%A5%3A%20%ED%99%95%EC%9E%A5%20%EA%B8%B0%EB%8A%A5%EC%9D%98%20%EB%B8%94%EB%A1%9D%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0%20%EC%A0%84%EC%97%90%20%EB%B0%98%EB%93%9C%EC%8B%9C%20%5C%22%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80%EC%9D%98%20%EB%84%A4%EC%9E%84%EC%8A%A4%ED%8E%98%EC%9D%B4%EC%8A%A4%20ID%EB%A5%BC%20...(%EC%9C%BC)%EB%A1%9C%20%EC%A0%95%ED%95%98%EA%B8%B0%5C%22%20%EB%B8%94%EB%A1%9D%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EB%8B%A4%22%2C%22_delete%20all%20keys%22%3A%22%EB%AA%A8%EB%93%A0%20%ED%82%A4%20%EC%82%AD%EC%A0%9C%ED%95%98%EA%B8%B0%22%2C%22_delete%20key%20%5BKEY%5D%22%3A%22%5BKEY%5D%20%ED%82%A4%20%EC%82%AD%EC%A0%9C%ED%95%98%EA%B8%B0%22%2C%22_get%20key%20%5BKEY%5D%22%3A%22%5BKEY%5D%20%ED%82%A4%EC%9D%98%20%EA%B0%92%22%2C%22_project%20title%22%3A%22%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%20%EC%A0%9C%EB%AA%A9%22%2C%22_score%22%3A%22%EC%A0%90%EC%88%98%22%2C%22_set%20key%20%5BKEY%5D%20to%20%5BVALUE%5D%22%3A%22%ED%82%A4%20%5BKEY%5D%EC%9D%84(%EB%A5%BC)%20%5BVALUE%5D(%EC%9C%BC)%EB%A1%9C%20%EC%A0%95%ED%95%98%EA%B8%B0%22%2C%22_set%20storage%20namespace%20ID%20to%20%5BID%5D%22%3A%22%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80%EC%9D%98%20%EB%84%A4%EC%9E%84%EC%8A%A4%ED%8E%98%EC%9D%B4%EC%8A%A4%20ID%EB%A5%BC%20%5BID%5D(%EC%9C%BC)%EB%A1%9C%20%EC%A0%95%ED%95%98%EA%B8%B0%22%2C%22_when%20another%20window%20changes%20storage%22%3A%22%EB%8B%A4%EB%A5%B8%20%EC%B0%BD%EC%97%90%EC%84%9C%20%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80%EB%A5%BC%20%EB%B3%80%EA%B2%BD%ED%96%88%EC%9D%84%20%EB%95%8C%22%7D%2C%22nb%22%3A%7B%22_Local%20Storage%22%3A%22Lokal%20lagring%22%2C%22_Local%20Storage%20extension%3A%20project%20must%20run%20the%20%5C%22set%20storage%20namespace%20ID%5C%22%20block%20before%20it%20can%20use%20other%20blocks%22%3A%22Lokal%20lagring%20utvidelse%3A%20prosjektet%20m%C3%A5%20kj%C3%B8re%20blokken%20%5C%22sett%20lagringsnavnerom-ID%5C%22%20f%C3%B8r%20det%20kan%20bruke%20andre%20blokker%22%2C%22_delete%20all%20keys%22%3A%22slett%20alle%20n%C3%B8kler%22%2C%22_delete%20key%20%5BKEY%5D%22%3A%22slett%20n%C3%B8kkel%20%5BKEY%5D%22%2C%22_get%20key%20%5BKEY%5D%22%3A%22f%C3%A5%20n%C3%B8kkel%20%5BKEY%5D%22%2C%22_project%20title%22%3A%22prosjekttittel%22%2C%22_score%22%3A%22poengsum%22%2C%22_set%20key%20%5BKEY%5D%20to%20%5BVALUE%5D%22%3A%22sett%20n%C3%B8kkel%20%5BKEY%5D%20til%20%5BVALUE%5D%22%2C%22_set%20storage%20namespace%20ID%20to%20%5BID%5D%22%3A%22sett%20lagringsnavnerom-ID%20til%20%5BID%5D%22%2C%22_when%20another%20window%20changes%20storage%22%3A%22n%C3%A5r%20et%20annet%20vindu%20endrer%20lagring%22%7D%2C%22nl%22%3A%7B%22_Local%20Storage%22%3A%22Lokale%20opslag%22%2C%22_Local%20Storage%20extension%3A%20project%20must%20run%20the%20%5C%22set%20storage%20namespace%20ID%5C%22%20block%20before%20it%20can%20use%20other%20blocks%22%3A%22Lokale%20opslag-extensie%3A%20het%20project%20moet%20eerst%20een%20opslagnaamruimte-ID%20toegewezen%20krijgen%20voordat%20de%20andere%20blokken%20kunnen%20werken.%22%2C%22_delete%20all%20keys%22%3A%22verwijder%20alle%20sleutels%22%2C%22_delete%20key%20%5BKEY%5D%22%3A%22verwijder%20sleutel%20%5BKEY%5D%22%2C%22_get%20key%20%5BKEY%5D%22%3A%22sleutel%20%5BKEY%5D%22%2C%22_project%20title%22%3A%22projecttitel%22%2C%22_set%20key%20%5BKEY%5D%20to%20%5BVALUE%5D%22%3A%22maak%20sleutel%20%5BKEY%5D%20%5BVALUE%5D%22%2C%22_set%20storage%20namespace%20ID%20to%20%5BID%5D%22%3A%22maak%20opslagnaamruimte-ID%20%5BID%5D%22%2C%22_when%20another%20window%20changes%20storage%22%3A%22wanneer%20een%20ander%20venster%20de%20opslag%20aanpast%22%7D%2C%22pl%22%3A%7B%22_project%20title%22%3A%22tytu%C5%82%20projektu%22%2C%22_score%22%3A%22wynik%22%7D%2C%22ru%22%3A%7B%22_Local%20Storage%22%3A%22%D0%9B%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5%20%D0%A5%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89%D0%B5%22%2C%22_Local%20Storage%20extension%3A%20project%20must%20run%20the%20%5C%22set%20storage%20namespace%20ID%5C%22%20block%20before%20it%20can%20use%20other%20blocks%22%3A%22%D0%A0%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%9B%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5%20%D0%A5%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89%D0%B5%3A%20%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%20%D0%B4%D0%BE%D0%BB%D0%B6%D0%B5%D0%BD%20%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D1%82%D0%B8%D1%82%D1%8C%20%D0%B1%D0%BB%D0%BE%D0%BA%20%5C%22%D0%B7%D0%B0%D0%B4%D0%B0%D1%82%D1%8C%20ID%20%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%82%D0%B2%D0%B0%20%D0%B8%D0%BC%D0%B5%D0%BD%20%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89%D0%B0%5C%22%2C%20%D0%BF%D1%80%D0%B5%D0%B6%D0%B4%D0%B5%20%D1%87%D0%B5%D0%BC%20%D0%BE%D0%BD%20%D1%81%D0%BC%D0%BE%D0%B6%D0%B5%D1%82%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D0%B5%20%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8%22%2C%22_delete%20all%20keys%22%3A%22%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C%20%D0%B2%D1%81%D0%B5%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%22%2C%22_delete%20key%20%5BKEY%5D%22%3A%22%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%5BKEY%5D%22%2C%22_get%20key%20%5BKEY%5D%22%3A%22%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%5BKEY%5D%22%2C%22_project%20title%22%3A%22%D0%BD%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%22%2C%22_score%22%3A%22%D0%BE%D1%87%D0%BA%D0%B8%22%2C%22_set%20key%20%5BKEY%5D%20to%20%5BVALUE%5D%22%3A%22%D0%B7%D0%B0%D0%B4%D0%B0%D1%82%D1%8C%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%5BKEY%5D%20%D0%BD%D0%B0%20%5BVALUE%5D%22%2C%22_set%20storage%20namespace%20ID%20to%20%5BID%5D%22%3A%22%D0%B7%D0%B0%D0%B4%D0%B0%D1%82%D1%8C%20ID%20%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89%D0%B0%20%D0%BD%D0%B0%20%5BID%5D%22%2C%22_when%20another%20window%20changes%20storage%22%3A%22%D0%BA%D0%BE%D0%B3%D0%B4%D0%B0%20%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B5%20%D0%BE%D0%BA%D0%BD%D0%BE%20%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D1%82%20%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89%D0%B5%22%7D%2C%22uk%22%3A%7B%22_Local%20Storage%22%3A%22%D0%9B%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D0%B5%20%D0%A1%D1%85%D0%BE%D0%B2%D0%B8%D1%89%D0%B5%22%7D%2C%22zh-cn%22%3A%7B%22_Local%20Storage%22%3A%22%E6%9C%AC%E5%9C%B0%E5%AD%98%E5%82%A8%22%2C%22_Local%20Storage%20extension%3A%20project%20must%20run%20the%20%5C%22set%20storage%20namespace%20ID%5C%22%20block%20before%20it%20can%20use%20other%20blocks%22%3A%22%E6%9C%AC%E5%9C%B0%E5%AD%98%E5%82%A8%E6%8B%93%E5%B1%95%EF%BC%9A%E8%AF%B7%E5%85%88%E8%BF%90%E8%A1%8C%E2%80%9C%E8%AE%BE%E7%BD%AE%E5%AD%98%E5%82%A8%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4ID%E2%80%9D%E7%A7%AF%E6%9C%A8%E6%89%8D%E8%83%BD%E4%BD%BF%E7%94%A8%E4%B8%8B%E9%9D%A2%E7%9A%84%E7%A7%AF%E6%9C%A8%22%2C%22_delete%20all%20keys%22%3A%22%E5%88%A0%E9%99%A4%E6%89%80%E6%9C%89%E6%9C%AC%E5%9C%B0%E5%AD%98%E5%82%A8%E5%8F%98%E9%87%8F%22%2C%22_delete%20key%20%5BKEY%5D%22%3A%22%E5%88%A0%E9%99%A4%E6%9C%AC%E5%9C%B0%E5%AD%98%E5%82%A8%E5%8F%98%E9%87%8F%5BKEY%5D%22%2C%22_get%20key%20%5BKEY%5D%22%3A%22%E6%9C%AC%E5%9C%B0%E5%AD%98%E5%82%A8%E5%8F%98%E9%87%8F%5BKEY%5D%E7%9A%84%E5%80%BC%22%2C%22_project%20title%22%3A%22%E4%BD%9C%E5%93%81%E6%A0%87%E9%A2%98%22%2C%22_score%22%3A%22%E5%88%86%E6%95%B0%22%2C%22_set%20key%20%5BKEY%5D%20to%20%5BVALUE%5D%22%3A%22%E8%AE%BE%E7%BD%AE%E6%9C%AC%E5%9C%B0%E5%AD%98%E5%82%A8%E5%8F%98%E9%87%8F%5BKEY%5D%E7%9A%84%E5%80%BC%E4%B8%BA%5BVALUE%5D%22%2C%22_set%20storage%20namespace%20ID%20to%20%5BID%5D%22%3A%22%E8%AE%BE%E7%BD%AE%E5%AD%98%E5%82%A8%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4ID%E4%B8%BA%5BID%5D%22%2C%22_when%20another%20window%20changes%20storage%22%3A%22%E5%BD%93%E5%85%B6%E4%BB%96%E9%A1%B5%E9%9D%A2%E4%BF%AE%E6%94%B9%E6%9C%AC%E5%9C%B0%E5%AD%98%E5%82%A8%E6%95%B0%E6%8D%AE%22%7D%7D)%3B%2F*%20end%20generated%20l10n%20code%20*%2F(function%20(Scratch)%20%7B%0A%20%20%22use%20strict%22%3B%0A%0A%20%20if%20(!Scratch.extensions.unsandboxed)%20%7B%0A%20%20%20%20throw%20new%20Error(%22Local%20Storage%20must%20be%20run%20unsandboxed%22)%3B%0A%20%20%7D%0A%0A%20%20const%20PREFIX%20%3D%20%22extensions.turbowarp.org%2Flocal-storage%3A%22%3B%0A%20%20let%20namespace%20%3D%20%22%22%3B%0A%20%20const%20getFullStorageKey%20%3D%20()%20%3D%3E%20%60%24%7BPREFIX%7D%24%7Bnamespace%7D%60%3B%0A%0A%20%20let%20lastNamespaceWarning%20%3D%200%3B%0A%0A%20%20const%20validNamespace%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20const%20valid%20%3D%20!!namespace%3B%0A%20%20%20%20if%20(!valid%20%26%26%20Date.now()%20-%20lastNamespaceWarning%20%3E%203000)%20%7B%0A%20%20%20%20%20%20alert(%0A%20%20%20%20%20%20%20%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20'Local%20Storage%20extension%3A%20project%20must%20run%20the%20%22set%20storage%20namespace%20ID%22%20block%20before%20it%20can%20use%20other%20blocks'%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20lastNamespaceWarning%20%3D%20Date.now()%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20valid%3B%0A%20%20%7D%3B%0A%0A%20%20const%20readFromStorage%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%2F%2F%20localStorage%20could%20throw%20if%20unsupported%0A%20%20%20%20%20%20const%20data%20%3D%20localStorage.getItem(getFullStorageKey())%3B%0A%20%20%20%20%20%20if%20(data)%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20JSON.parse%20could%20throw%20if%20data%20is%20invalid%0A%20%20%20%20%20%20%20%20const%20parsed%20%3D%20JSON.parse(data)%3B%0A%20%20%20%20%20%20%20%20if%20(parsed%20%26%26%20parsed.data)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20Remove%20invalid%20values%20from%20the%20JSON%0A%20%20%20%20%20%20%20%20%20%20const%20processed%20%3D%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20for%20(const%20%5Bkey%2C%20value%5D%20of%20Object.entries(parsed.data))%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20typeof%20value%20%3D%3D%3D%20%22number%22%20%7C%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20typeof%20value%20%3D%3D%3D%20%22string%22%20%7C%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20typeof%20value%20%3D%3D%3D%20%22boolean%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20processed%5Bkey%5D%20%3D%20value%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20return%20processed%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20%20%20console.error(%22error%20reading%20from%20local%20storage%22%2C%20error)%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20%7B%7D%3B%0A%20%20%7D%3B%0A%0A%20%20const%20saveToLocalStorage%20%3D%20(data)%20%3D%3E%20%7B%0A%20%20%20%20try%20%7B%0A%20%20%20%20%20%20if%20(Object.keys(data).length%20%3E%200)%20%7B%0A%20%20%20%20%20%20%20%20localStorage.setItem(%0A%20%20%20%20%20%20%20%20%20%20getFullStorageKey()%2C%0A%20%20%20%20%20%20%20%20%20%20JSON.stringify(%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20time%3A%20Math.round(Date.now()%20%2F%201000)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20data%2C%0A%20%20%20%20%20%20%20%20%20%20%7D)%0A%20%20%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20localStorage.removeItem(getFullStorageKey())%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%20catch%20(error)%20%7B%0A%20%20%20%20%20%20console.error(%22error%20saving%20to%20locacl%20storage%22%2C%20error)%3B%0A%20%20%20%20%7D%0A%20%20%7D%3B%0A%0A%20%20window.addEventListener(%22storage%22%2C%20(event)%20%3D%3E%20%7B%0A%20%20%20%20if%20(%0A%20%20%20%20%20%20namespace%20%26%26%0A%20%20%20%20%20%20event.key%20%3D%3D%3D%20getFullStorageKey()%20%26%26%0A%20%20%20%20%20%20event.storageArea%20%3D%3D%3D%20localStorage%0A%20%20%20%20)%20%7B%0A%20%20%20%20%20%20Scratch.vm.runtime.startHats(%22localstorage_whenChanged%22)%3B%0A%20%20%20%20%7D%0A%20%20%7D)%3B%0A%0A%20%20Scratch.vm.runtime.on(%22RUNTIME_DISPOSED%22%2C%20()%20%3D%3E%20%7B%0A%20%20%20%20namespace%20%3D%20%22%22%3B%0A%20%20%7D)%3B%0A%0A%20%20class%20LocalStorage%20%7B%0A%20%20%20%20getInfo()%20%7B%0A%20%20%20%20%20%20return%20%7B%0A%20%20%20%20%20%20%20%20id%3A%20%22localstorage%22%2C%0A%20%20%20%20%20%20%20%20name%3A%20Scratch.translate(%22Local%20Storage%22)%2C%0A%20%20%20%20%20%20%20%20docsURI%3A%20%22https%3A%2F%2Fextensions.turbowarp.org%2Flocal-storage%22%2C%0A%20%20%20%20%20%20%20%20blocks%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setProjectId%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22set%20storage%20namespace%20ID%20to%20%5BID%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ID%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20Scratch.translate(%22project%20title%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22get%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22get%20key%20%5BKEY%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20KEY%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20Scratch.translate(%22score%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22set%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22set%20key%20%5BKEY%5D%20to%20%5BVALUE%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20KEY%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20Scratch.translate(%22score%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20VALUE%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%221000%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22remove%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22delete%20key%20%5BKEY%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20KEY%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20Scratch.translate(%22score%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22removeAll%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22delete%20all%20keys%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22whenChanged%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.EVENT%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22when%20another%20window%20changes%20storage%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20isEdgeActivated%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%7D%0A%20%20%20%20setProjectId(%7B%20ID%20%7D)%20%7B%0A%20%20%20%20%20%20namespace%20%3D%20Scratch.Cast.toString(ID)%3B%0A%20%20%20%20%7D%0A%20%20%20%20get(%7B%20KEY%20%7D)%20%7B%0A%20%20%20%20%20%20if%20(!validNamespace())%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20const%20storage%20%3D%20readFromStorage()%3B%0A%20%20%20%20%20%20KEY%20%3D%20Scratch.Cast.toString(KEY)%3B%0A%20%20%20%20%20%20if%20(!Object.prototype.hasOwnProperty.call(storage%2C%20KEY))%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20return%20storage%5BKEY%5D%3B%0A%20%20%20%20%7D%0A%20%20%20%20set(%7B%20KEY%2C%20VALUE%20%7D)%20%7B%0A%20%20%20%20%20%20if%20(!validNamespace())%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20const%20storage%20%3D%20readFromStorage()%3B%0A%20%20%20%20%20%20storage%5BScratch.Cast.toString(KEY)%5D%20%3D%20VALUE%3B%0A%20%20%20%20%20%20saveToLocalStorage(storage)%3B%0A%20%20%20%20%7D%0A%20%20%20%20remove(%7B%20KEY%20%7D)%20%7B%0A%20%20%20%20%20%20if%20(!validNamespace())%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20const%20storage%20%3D%20readFromStorage()%3B%0A%20%20%20%20%20%20delete%20storage%5BScratch.Cast.toString(KEY)%5D%3B%0A%20%20%20%20%20%20saveToLocalStorage(storage)%3B%0A%20%20%20%20%7D%0A%20%20%20%20removeAll()%20%7B%0A%20%20%20%20%20%20if%20(!validNamespace())%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20saveToLocalStorage(%7B%7D)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20Scratch.extensions.register(new%20LocalStorage())%3B%0A%7D)(Scratch)%3B%0A%20%7D)(Scratch)%3B","data:text/javascript;,(function(Scratch)%20%7B%20%2F%2F%20Name%3A%20Animated%20Text%0A%2F%2F%20ID%3A%20text%0A%2F%2F%20Description%3A%20An%20easy%20way%20to%20display%20and%20animate%20text.%20Compatible%20with%20Scratch%20Lab's%20Animated%20Text%20experiment.%0A%2F%2F%20By%3A%20LilyMakesThings%0A%2F%2F%20License%3A%20MIT%20AND%20LGPL-3.0%0A%0A%2F*%20generated%20l10n%20code%20*%2FScratch.translate.setup(%7B%22de%22%3A%7B%22_Animated%20Text%22%3A%22Animierter%20Text%22%7D%2C%22fi%22%3A%7B%22_%23%20of%20lines%22%3A%22rivien%20m%C3%A4%C3%A4r%C3%A4%22%2C%22_%23%20of%20lines%20%5BWITH_WORD_WRAP%5D%22%3A%22rivien%20m%C3%A4%C3%A4r%C3%A4%20%5BWITH_WORD_WRAP%5D%22%2C%22_Animated%20Text%22%3A%22Animoitu%20teksti%22%2C%22_Enable%20Non-Scratch%20Lab%20Features%22%3A%22Ota%20Scratch%20Labin%20ulkopuoliset%20ominaisuudet%20k%C3%A4ytt%C3%B6%C3%B6n%22%2C%22_Hello!%22%3A%22Hei!%22%2C%22_Here%20we%20go!%22%3A%22Aloitetaan!%22%2C%22_Incompatible%20with%20Scratch%20Lab%3A%22%3A%22Ei-yhteensopivia%20Scratch%20Labin%20kanssa%3A%22%2C%22_Welcome%20to%20my%20project!%22%3A%22Tervetuloa%20projektiini!%22%2C%22_%5BANIMATE%5D%20duration%22%3A%22animaation%20%5BANIMATE%5D%20kesto%22%2C%22_%5BANIMATE%5D%20text%20%5BTEXT%5D%22%3A%22%5BANIMATE%5D%20teksti%20%5BTEXT%5D%22%2C%22_add%20line%20%5BTEXT%5D%22%3A%22lis%C3%A4%C3%A4%20rivi%20%5BTEXT%5D%22%2C%22_align%20text%20to%20%5BALIGN%5D%22%3A%22keskit%C3%A4%20teksti%20%5BALIGN%5D%22%2C%22_animate%20%5BANIMATE%5D%20until%20done%22%3A%22suorita%20%5BANIMATE%5D%20animaatio%20loppuun%22%2C%22_center%22%3A%22keskelle%22%2C%22_displayed%20text%22%3A%22n%C3%A4ytetty%20teksti%22%2C%22_is%20animating%3F%22%3A%22onko%20animaatio%20k%C3%A4ynniss%C3%A4%3F%22%2C%22_is%20showing%20text%3F%22%3A%22n%C3%A4ytet%C3%A4%C3%A4nk%C3%B6%20teksti%C3%A4%3F%22%2C%22_left%22%3A%22vasemmalle%22%2C%22_rainbow%22%3A%22sateenkaari%22%2C%22_random%20font%22%3A%22satunnainen%20fontti%22%2C%22_reset%20%5BANIMATE%5D%20duration%22%3A%22palauta%20%5BANIMATE%5D%20animaatio%20normaalikestoiseksi%22%2C%22_reset%20text%20width%22%3A%22nollaa%20tekstin%20leveys%22%2C%22_reset%20typing%20delay%22%3A%22nollaa%20kirjoitusv%C3%A4li%22%2C%22_right%22%3A%22oikealle%22%2C%22_set%20%5BANIMATE%5D%20duration%20to%20%5BNUM%5D%20seconds%22%3A%22aseta%20%5BANIMATE%5D%20animaatio%20%5BNUM%5D%20sekunnin%20pituiseksi%22%2C%22_set%20font%20to%20%5BFONT%5D%22%3A%22aseta%20fontiksi%20%5BFONT%5D%22%2C%22_set%20text%20color%20to%20%5BCOLOR%5D%22%3A%22aseta%20tekstin%20v%C3%A4riksi%20%5BCOLOR%5D%22%2C%22_set%20typing%20delay%20to%20%5BNUM%5D%20seconds%22%3A%22aseta%20kirjoitusv%C3%A4liksi%20%5BNUM%5D%20sekuntia%22%2C%22_set%20width%20to%20%5BWIDTH%5D%22%3A%22aseta%20leveydeksi%20%5BWIDTH%5D%22%2C%22_set%20width%20to%20%5BWIDTH%5D%20aligned%20%5BALIGN%5D%22%3A%22aseta%20leveydeksi%20%5BWIDTH%5D%20ja%20keskit%C3%A4%20%5BALIGN%5D%22%2C%22_show%20sprite%22%3A%22n%C3%A4yt%C3%A4%20hahmo%22%2C%22_show%20text%20%5BTEXT%5D%22%3A%22n%C3%A4yt%C3%A4%20teksti%20%5BTEXT%5D%22%2C%22_start%20%5BANIMATE%5D%20animation%22%3A%22aloita%20%5BANIMATE%5D%20animaatio%22%2C%22_text%20%5BATTRIBUTE%5D%22%3A%22tekstin%20%5BATTRIBUTE%5D%22%2C%22_type%22%3A%22kirjoittuva%22%2C%22_typing%20delay%22%3A%22kirjoitusv%C3%A4li%22%2C%22_with%20word%20wrap%22%3A%22tekstin%20rivitys%20mukaan%20lukien%22%2C%22_without%20word%20wrap%22%3A%22ilman%20tekstin%20rivityst%C3%A4%22%2C%22_zoom%22%3A%22l%C3%A4henev%C3%A4%22%2C%22disableCompatibilityMode%22%3A%22T%C3%A4m%C3%A4%20ottaa%20k%C3%A4ytt%C3%B6%C3%B6n%20uusia%20lohkoja%20ja%20ominaisuuksia%2C%20jotka%20EIV%C3%84T%20TOIMI%20virallisessa%20Scratch%20Labissa.%5Cn%5CnHaluatko%20jatkaa%3F%22%7D%2C%22it%22%3A%7B%22_%23%20of%20lines%22%3A%22numero%20di%20righe%22%2C%22_Animated%20Text%22%3A%22Testo%20Animato%22%2C%22_Enable%20Non-Scratch%20Lab%20Features%22%3A%22Abilita%20blocchi%20non%20presenti%20in%20Scratch%20Lab%22%2C%22_Hello!%22%3A%22Ciao!%22%2C%22_Here%20we%20go!%22%3A%22Ecco%20fatto!%22%2C%22_Incompatible%20with%20Scratch%20Lab%3A%22%3A%22Non%20compatibili%20con%20Scratch%20Lab%3A%22%2C%22_Welcome%20to%20my%20project!%22%3A%22Bevenuti%20nel%20mio%20progetto!%22%2C%22_%5BANIMATE%5D%20duration%22%3A%22durata%20%5BANIMATE%5D%22%2C%22_%5BANIMATE%5D%20text%20%5BTEXT%5D%22%3A%22testo%20%5BTEXT%5D%20con%20effetto%20%5BANIMATE%5D%22%2C%22_add%20line%20%5BTEXT%5D%22%3A%22aggiugi%20riga%20%5BTEXT%5D%22%2C%22_align%20text%20to%20%5BALIGN%5D%22%3A%22allinea%20il%20testo%20%5BALIGN%5D%22%2C%22_animate%20%5BANIMATE%5D%20until%20done%22%3A%22inizia%20animazione%20%5BANIMATE%5D%20e%20attendi%20la%20fine%22%2C%22_center%22%3A%22centro%22%2C%22_displayed%20text%22%3A%22testo%20animato%22%2C%22_is%20animating%3F%22%3A%22animato%22%2C%22_is%20showing%20text%3F%22%3A%22testo%20visibile%22%2C%22_left%22%3A%22a%20sinistra%22%2C%22_rainbow%22%3A%22effetto%20arcobaleno%22%2C%22_random%20font%22%3A%22scelto%20a%20caso%22%2C%22_reset%20%5BANIMATE%5D%20duration%22%3A%22resetta%20durata%20animazione%20%5BANIMATE%5D%22%2C%22_reset%20text%20width%22%3A%22resetta%20larghezza%20testo%22%2C%22_reset%20typing%20delay%22%3A%22resetta%20intervallo%20effetto%20digitazione%22%2C%22_right%22%3A%22a%20destra%22%2C%22_set%20%5BANIMATE%5D%20duration%20to%20%5BNUM%5D%20seconds%22%3A%22imposta%20durata%20%5BANIMATE%5D%20a%20%5BNUM%5D%20secondi%22%2C%22_set%20font%20to%20%5BFONT%5D%22%3A%22usa%20carattere%20%5BFONT%5D%22%2C%22_set%20outline%20color%20to%20%5BCOLOR%5D%22%3A%22usa%20%5BCOLOR%5D%20come%20colore%20del%20bordo%22%2C%22_set%20outline%20width%20to%20%5BWIDTH%5D%22%3A%22usa%20uno%20spessore%20del%20bordo%20pari%20a%20%5BWIDTH%5D%22%2C%22_set%20shake%20intensity%20to%20%5BNUM%5D%25%22%3A%22porta%20l'intensit%C3%A0%20di%20vibrazione%20al%20%5BNUM%5D%25%22%2C%22_set%20text%20color%20to%20%5BCOLOR%5D%22%3A%22imposta%20colore%20del%20testo%20a%20%5BCOLOR%5D%22%2C%22_set%20typing%20delay%20to%20%5BNUM%5D%20seconds%22%3A%22imposta%20intervallo%20effetto%20digitazione%20a%20%5BNUM%5D%20secondi%22%2C%22_set%20width%20to%20%5BWIDTH%5D%22%3A%22imposta%20larghezza%20a%20%5BWIDTH%5D%22%2C%22_set%20width%20to%20%5BWIDTH%5D%20aligned%20%5BALIGN%5D%22%3A%22imposta%20larghezza%20a%20%5BWIDTH%5D%20con%20allineamento%20%5BALIGN%5D%22%2C%22_show%20sprite%22%3A%22mostra%20sprite%22%2C%22_show%20text%20%5BTEXT%5D%22%3A%22mostra%20testo%20%5BTEXT%5D%22%2C%22_start%20%5BANIMATE%5D%20animation%22%3A%22inizia%20animazione%20%5BANIMATE%5D%22%2C%22_text%20%5BATTRIBUTE%5D%22%3A%22%5BATTRIBUTE%5D%20del%20testo%22%2C%22_type%22%3A%22effetto%20digitazione%22%2C%22_typing%20delay%22%3A%22intervallo%20effetto%20digitazione%22%2C%22_zoom%22%3A%22effetto%20zoom%22%7D%2C%22ja%22%3A%7B%22_%23%20of%20lines%22%3A%22%E8%A1%8C%E6%95%B0%22%2C%22_%23%20of%20lines%20%5BWITH_WORD_WRAP%5D%22%3A%22%5BWITH_WORD_WRAP%5D%E3%81%AE%E8%A1%8C%E6%95%B0%22%2C%22_Animated%20Text%22%3A%22%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%22%2C%22_Enable%20Non-Scratch%20Lab%20Features%22%3A%22Scratch%20Lab%E4%BB%A5%E5%A4%96%E3%81%AE%E6%A9%9F%E8%83%BD%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%22%2C%22_Hello!%22%3A%22%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF!%22%2C%22_Here%20we%20go!%22%3A%22%E3%81%95%E3%81%81%E8%A1%8C%E3%81%93%E3%81%86!%22%2C%22_Incompatible%20with%20Scratch%20Lab%3A%22%3A%22Scratch%20Lab%E3%81%A8%E3%81%AE%E4%BA%92%E6%8F%9B%E6%80%A7%E3%81%AA%E3%81%97%22%2C%22_Welcome%20to%20my%20project!%22%3A%22%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%B8%E3%82%88%E3%81%86%E3%81%93%E3%81%9D!%22%2C%22_%5BANIMATE%5D%20duration%22%3A%22%5BANIMATE%5D%E3%81%AE%E9%95%B7%E3%81%95%22%2C%22_%5BANIMATE%5D%20text%20%5BTEXT%5D%22%3A%22%5BANIMATE%5D%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%5BTEXT%5D%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%22%2C%22_add%20line%20%5BTEXT%5D%22%3A%22%E8%A1%8C%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%A6%5BTEXT%5D%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%22%2C%22_align%20text%20to%20%5BALIGN%5D%22%3A%22%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%92%5BALIGN%5D%E5%AF%84%E3%82%8A%E3%81%AB%E3%81%99%E3%82%8B%22%2C%22_animate%20%5BANIMATE%5D%20until%20done%22%3A%22%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%5BANIMATE%5D%E3%82%92%E9%96%8B%E5%A7%8B%E3%81%97%E3%81%A6%E5%BE%85%E3%81%A4%22%2C%22_center%22%3A%22%E4%B8%AD%E5%A4%AE%22%2C%22_displayed%20text%22%3A%22%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%22%2C%22_is%20animating%3F%22%3A%22%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%3F%22%2C%22_is%20showing%20text%3F%22%3A%22%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%81%8C%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8B%3F%22%2C%22_left%22%3A%22%E5%B7%A6%22%2C%22_rainbow%22%3A%22%E3%83%AC%E3%82%A4%E3%83%B3%E3%83%9C%E3%83%BC%22%2C%22_random%20font%22%3A%22%E3%83%A9%E3%83%B3%E3%83%80%E3%83%A0%E3%81%AA%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%22%2C%22_reset%20%5BANIMATE%5D%20duration%22%3A%22%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%5BANIMATE%5D%E3%81%AE%E9%95%B7%E3%81%95%E3%82%92%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%81%99%E3%82%8B%22%2C%22_reset%20text%20width%22%3A%22%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%81%AE%E5%B9%85%E3%82%92%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%81%99%E3%82%8B%22%2C%22_reset%20typing%20delay%22%3A%22%E3%82%BF%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E9%96%93%E9%9A%94%E3%82%92%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%22%2C%22_right%22%3A%22%E5%8F%B3%22%2C%22_set%20%5BANIMATE%5D%20duration%20to%20%5BNUM%5D%20seconds%22%3A%22%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%5BANIMATE%5D%E3%81%AE%E9%95%B7%E3%81%95%E3%82%92%5BNUM%5D%E7%A7%92%E3%81%AB%E3%81%99%E3%82%8B%22%2C%22_set%20font%20to%20%5BFONT%5D%22%3A%22%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E3%82%92%5BFONT%5D%E3%81%AB%E3%81%99%E3%82%8B%22%2C%22_set%20outline%20color%20to%20%5BCOLOR%5D%22%3A%22%E8%BC%AA%E9%83%AD%E3%81%AE%E8%89%B2%E3%82%92%5BCOLOR%5D%E3%81%AB%E3%81%99%E3%82%8B%22%2C%22_set%20outline%20width%20to%20%5BWIDTH%5D%22%3A%22%E8%BC%AA%E9%83%AD%E3%81%AE%E5%B9%85%E3%82%92%5BWIDTH%5D%E3%81%AB%E3%81%99%E3%82%8B%22%2C%22_set%20shake%20intensity%20to%20%5BNUM%5D%25%22%3A%22%E3%82%B7%E3%82%A7%E3%82%A4%E3%82%AF%E3%81%AE%E5%BC%B7%E5%BA%A6%E3%82%92%5BNUM%5D%25%E3%81%AB%E3%81%99%E3%82%8B%22%2C%22_set%20text%20color%20to%20%5BCOLOR%5D%22%3A%22%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%81%AE%E8%89%B2%E3%82%92%5BCOLOR%5D%E3%81%AB%E3%81%99%E3%82%8B%22%2C%22_set%20typing%20delay%20to%20%5BNUM%5D%20seconds%22%3A%22%E3%82%BF%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E9%96%93%E9%9A%94%E3%82%92%5BNUM%5D%E7%A7%92%E3%81%AB%E3%81%99%E3%82%8B%22%2C%22_set%20width%20to%20%5BWIDTH%5D%22%3A%22%E5%B9%85%E3%82%92%5BWIDTH%5D%E3%81%AB%E3%81%99%E3%82%8B%22%2C%22_set%20width%20to%20%5BWIDTH%5D%20aligned%20%5BALIGN%5D%22%3A%22%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%81%AE%E5%B9%85%E3%82%92%5BWIDTH%5D%E3%80%81%5BALIGN%5D%E5%AF%84%E3%81%9B%E3%81%AB%E3%81%99%E3%82%8B%22%2C%22_show%20sprite%22%3A%22%E3%82%B9%E3%83%97%E3%83%A9%E3%82%A4%E3%83%88%E3%82%92%E8%A1%A8%E7%A4%BA%22%2C%22_show%20text%20%5BTEXT%5D%22%3A%22%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%5BTEXT%5D%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B%22%2C%22_start%20%5BANIMATE%5D%20animation%22%3A%22%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%5BANIMATE%5D%E3%82%92%E9%96%8B%E5%A7%8B%E3%81%99%E3%82%8B%22%2C%22_text%20%5BATTRIBUTE%5D%22%3A%22%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%81%AE%5BATTRIBUTE%5D%22%2C%22_type%22%3A%22%E3%82%BF%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%22%2C%22_typing%20delay%22%3A%22%E3%82%BF%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E9%96%93%E9%9A%94%22%2C%22_with%20word%20wrap%22%3A%22%E9%80%94%E4%B8%AD%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%82%93%E3%81%A7%22%2C%22_without%20word%20wrap%22%3A%22%E9%80%94%E4%B8%AD%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84%E3%81%A7%22%2C%22_zoom%22%3A%22%E3%82%BA%E3%83%BC%E3%83%A0%22%2C%22disableCompatibilityMode%22%3A%22%E3%81%93%E3%82%8C%E3%81%AFScratch%20Lab%E3%81%A7%E3%81%AF%E5%8B%95%E3%81%8B%E3%81%AA%E3%81%84%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%82%84%E6%A9%9F%E8%83%BD%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%5Cn%5Cn%E7%B6%9A%E8%A1%8C%E3%81%97%E3%81%BE%E3%81%99%E3%81%8B%3F%22%7D%2C%22ko%22%3A%7B%22_%23%20of%20lines%22%3A%22%EC%A4%84%20%EC%88%98%22%2C%22_%23%20of%20lines%20%5BWITH_WORD_WRAP%5D%22%3A%22%5BWITH_WORD_WRAP%5D%20%EC%A4%84%20%EC%88%98%22%2C%22_Animated%20Text%22%3A%22%EC%95%A0%EB%8B%88%EB%A9%94%EC%9D%B4%EC%85%98%20%ED%85%8D%EC%8A%A4%ED%8A%B8%22%2C%22_Enable%20Non-Scratch%20Lab%20Features%22%3A%22%EB%B9%84%20Scratch%20Lab%20%EA%B8%B0%EB%8A%A5%20%ED%99%9C%EC%84%B1%ED%99%94%ED%95%98%EA%B8%B0%22%2C%22_Hello!%22%3A%22%EC%95%88%EB%85%95!%22%2C%22_Here%20we%20go!%22%3A%22%EA%B0%84%EB%8B%A4!%22%2C%22_Incompatible%20with%20Scratch%20Lab%3A%22%3A%22Scratch%20Lab%EA%B3%BC%20%ED%98%B8%ED%99%98%EB%90%98%EC%A7%80%20%EC%95%8A%EC%9D%8C%3A%22%2C%22_Welcome%20to%20my%20project!%22%3A%22%EC%A0%9C%20%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%97%90%20%EC%98%A4%EC%8B%A0%EA%B1%B8%20%ED%99%98%EC%98%81%ED%95%B4%EC%9A%94!%22%2C%22_%5BANIMATE%5D%20duration%22%3A%22%5BANIMATE%5D%EC%9D%98%20%EB%8F%99%EC%9E%91%20%EC%8B%9C%EA%B0%84%22%2C%22_%5BANIMATE%5D%20text%20%5BTEXT%5D%22%3A%22%5BANIMATE%5D%20%ED%85%8D%EC%8A%A4%ED%8A%B8%20%5BTEXT%5D%22%2C%22_add%20line%20%5BTEXT%5D%22%3A%22%EB%AC%B8%EA%B5%AC%20%EC%B6%94%EA%B0%80%ED%95%98%EA%B8%B0%20%5BTEXT%5D%22%2C%22_align%20text%20to%20%5BALIGN%5D%22%3A%22%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%A5%BC%20%5BALIGN%5D%20%EC%A0%95%EB%A0%AC%ED%95%98%EA%B8%B0%22%2C%22_animate%20%5BANIMATE%5D%20until%20done%22%3A%22%5BANIMATE%5D%20%EC%95%A0%EB%8B%88%EB%A9%94%EC%9D%B4%EC%85%98%20%EC%8B%9C%EC%9E%91%ED%95%98%EA%B3%A0%20%EA%B8%B0%EB%8B%A4%EB%A6%AC%EA%B8%B0%22%2C%22_center%22%3A%22%EA%B0%80%EC%9A%B4%EB%8D%B0%22%2C%22_displayed%20text%22%3A%22%EB%82%98%ED%83%80%EB%82%9C%20%ED%85%8D%EC%8A%A4%ED%8A%B8%22%2C%22_is%20animating%3F%22%3A%22%EC%95%A0%EB%8B%88%EB%A9%94%EC%9D%B4%EC%85%98%20%EC%A4%91%EC%9D%B8%EA%B0%80%3F%22%2C%22_is%20showing%20text%3F%22%3A%22%ED%85%8D%EC%8A%A4%ED%8A%B8%EA%B0%80%20%EB%82%98%ED%83%80%EB%82%AC%EB%8A%94%EA%B0%80%3F%22%2C%22_left%22%3A%22%EC%99%BC%EC%AA%BD%22%2C%22_rainbow%22%3A%22%EB%AC%B4%EC%A7%80%EA%B0%9C%22%2C%22_random%20font%22%3A%22%EB%AC%B4%EC%9E%91%EC%9C%84%20%EA%B8%80%EA%BC%B4%22%2C%22_reset%20%5BANIMATE%5D%20duration%22%3A%22%5BANIMATE%5D%EC%9D%98%20%EB%8F%99%EC%9E%91%20%EC%8B%9C%EA%B0%84%20%EC%B4%88%EA%B8%B0%ED%99%94%ED%95%98%EA%B8%B0%22%2C%22_reset%20text%20width%22%3A%22%ED%85%8D%EC%8A%A4%ED%8A%B8%20%EB%84%93%EC%9D%B4%EB%A5%BC%20%EC%B4%88%EA%B8%B0%ED%99%94%ED%95%98%EA%B8%B0%22%2C%22_reset%20typing%20delay%22%3A%22%ED%83%80%EC%9E%90%20%ED%9A%A8%EA%B3%BC%EC%9D%98%20%EA%B0%84%EA%B2%A9%20%EC%B4%88%EA%B8%B0%ED%99%94%ED%95%98%EA%B8%B0%22%2C%22_right%22%3A%22%EC%98%A4%EB%A5%B8%EC%AA%BD%22%2C%22_set%20%5BANIMATE%5D%20duration%20to%20%5BNUM%5D%20seconds%22%3A%22%5BANIMATE%5D%EC%9D%98%20%EB%8F%99%EC%9E%91%20%EC%8B%9C%EA%B0%84%EC%9D%84%20%5BNUM%5D%EC%B4%88%EB%A1%9C%20%EC%A0%95%ED%95%98%EA%B8%B0%22%2C%22_set%20font%20to%20%5BFONT%5D%22%3A%22%EA%B8%80%EA%BC%B4%EC%9D%84%20%5BFONT%5D(%EC%9C%BC)%EB%A1%9C%20%EC%A0%95%ED%95%98%EA%B8%B0%22%2C%22_set%20outline%20color%20to%20%5BCOLOR%5D%22%3A%22%ED%85%8C%EB%91%90%EB%A6%AC%20%EC%83%89%EC%9D%84%20%5BCOLOR%5D(%EC%9C%BC)%EB%A1%9C%20%EC%A0%95%ED%95%98%EA%B8%B0%22%2C%22_set%20outline%20width%20to%20%5BWIDTH%5D%22%3A%22%ED%85%8C%EB%91%90%EB%A6%AC%20%EB%91%90%EA%BB%98%EB%A5%BC%20%5BWIDTH%5D(%EC%9C%BC)%EB%A1%9C%20%EC%A0%95%ED%95%98%EA%B8%B0%22%2C%22_set%20text%20color%20to%20%5BCOLOR%5D%22%3A%22%ED%85%8D%EC%8A%A4%ED%8A%B8%20%EC%83%89%EC%9D%84%20%5BCOLOR%5D(%EC%9C%BC)%EB%A1%9C%20%EC%A0%95%ED%95%98%EA%B8%B0%22%2C%22_set%20typing%20delay%20to%20%5BNUM%5D%20seconds%22%3A%22%ED%83%80%EC%9E%90%20%ED%9A%A8%EA%B3%BC%EC%9D%98%20%EA%B0%84%EA%B2%A9%EC%9D%84%20%5BNUM%5D%EC%B4%88%EB%A1%9C%20%EC%A0%95%ED%95%98%EA%B8%B0%22%2C%22_set%20width%20to%20%5BWIDTH%5D%22%3A%22%EB%84%93%EC%9D%B4%EB%A5%BC%20%5BWIDTH%5D(%EC%9C%BC)%EB%A1%9C%20%EC%A0%95%ED%95%98%EA%B8%B0%22%2C%22_set%20width%20to%20%5BWIDTH%5D%20aligned%20%5BALIGN%5D%22%3A%22%EB%84%93%EC%9D%B4%20%5BWIDTH%5D%EC%9D%98%20%5BALIGN%5D%20%EC%A0%95%EB%A0%AC%EB%A1%9C%20%EC%A0%95%ED%95%98%EA%B8%B0%22%2C%22_show%20sprite%22%3A%22%EC%8A%A4%ED%94%84%EB%9D%BC%EC%9D%B4%ED%8A%B8%EB%A1%9C%20%EB%B3%B4%EC%9D%B4%EA%B8%B0%22%2C%22_show%20text%20%5BTEXT%5D%22%3A%22%ED%85%8D%EC%8A%A4%ED%8A%B8%20%5BTEXT%5D%20%EB%B3%B4%EC%9D%B4%EA%B8%B0%22%2C%22_start%20%5BANIMATE%5D%20animation%22%3A%22%5BANIMATE%5D%20%EC%95%A0%EB%8B%88%EB%A9%94%EC%9D%B4%EC%85%98%20%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0%22%2C%22_text%20%5BATTRIBUTE%5D%22%3A%22%ED%85%8D%EC%8A%A4%ED%8A%B8%EC%9D%98%20%5BATTRIBUTE%5D%22%2C%22_type%22%3A%22%ED%83%80%EC%9E%90%22%2C%22_typing%20delay%22%3A%22%ED%83%80%EC%9E%90%20%ED%9A%A8%EA%B3%BC%EC%9D%98%20%EA%B0%84%EA%B2%A9%22%2C%22_with%20word%20wrap%22%3A%22%EC%A4%84%EB%B0%94%EA%BF%88%EC%9D%84%20%ED%8F%AC%ED%95%A8%ED%95%9C%22%2C%22_without%20word%20wrap%22%3A%22%EC%A4%84%EB%B0%94%EA%BF%88%EC%9D%84%20%EC%A0%9C%EC%99%B8%ED%95%9C%22%2C%22_zoom%22%3A%22%EC%BB%A4%EC%A7%80%EA%B8%B0%22%2C%22disableCompatibilityMode%22%3A%22%EC%95%9E%EC%9C%BC%EB%A1%9C%20%EC%B6%94%EA%B0%80%EB%90%98%EB%8A%94%20%EA%B8%B0%EB%93%B1%EB%93%A4%EC%9D%80%20%EA%B3%B5%EC%8B%9D%20Scratch%20Lab%EA%B3%BC%20%ED%98%B8%ED%99%98%EB%90%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4.%5Cn%5Cn%EA%B3%84%EC%86%8D%ED%95%98%EC%8B%9C%EA%B2%A0%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%22%7D%2C%22nb%22%3A%7B%22_%23%20of%20lines%22%3A%22%23%20av%20linjer%22%2C%22_Animated%20Text%22%3A%22Animert%20Tekst%22%2C%22_Enable%20Non-Scratch%20Lab%20Features%22%3A%22Aktiver%20funksjoner%20som%20er%20ikke%20tilgjengelig%20i%20scratch%20lab%22%2C%22_Hello!%22%3A%22Hei!%22%2C%22_Here%20we%20go!%22%3A%22Her%20g%C3%A5r%20vi!%22%2C%22_Incompatible%20with%20Scratch%20Lab%3A%22%3A%22Inkompatibel%20med%20Scratch%20Lab.%22%2C%22_Welcome%20to%20my%20project!%22%3A%22Velkommen%20til%20mitt%20prosjekt!%22%2C%22_%5BANIMATE%5D%20duration%22%3A%22%5BANIMATE%5D%20varighet%22%2C%22_%5BANIMATE%5D%20text%20%5BTEXT%5D%22%3A%22%5BANIMATE%5D%20tekst%20%5BTEXT%5D%22%2C%22_add%20line%20%5BTEXT%5D%22%3A%22legg%20til%20linje%20%5BTEXT%5D%22%2C%22_align%20text%20to%20%5BALIGN%5D%22%3A%22juster%20teksten%20til%20%5BALIGN%5D%22%2C%22_animate%20%5BANIMATE%5D%20until%20done%22%3A%22animere%20%5BANIMATE%5D%20til%20ferdig%22%2C%22_center%22%3A%22senter%22%2C%22_displayed%20text%22%3A%22vist%20tekst%22%2C%22_is%20animating%3F%22%3A%22er%20animerer%3F%22%2C%22_is%20showing%20text%3F%22%3A%22viser%20teksten%3F%22%2C%22_left%22%3A%22venstre%22%2C%22_rainbow%22%3A%22regnbue%22%2C%22_random%20font%22%3A%22tilfeldig%20skrifttype%22%2C%22_reset%20%5BANIMATE%5D%20duration%22%3A%22tilbakestill%20%5BANIMATE%5D%20varighet%22%2C%22_reset%20text%20width%22%3A%22tilbakestill%20tekstbredde%22%2C%22_reset%20typing%20delay%22%3A%22nullstill%20skriveforsinkelse%22%2C%22_right%22%3A%22riktig%22%2C%22_set%20%5BANIMATE%5D%20duration%20to%20%5BNUM%5D%20seconds%22%3A%22sett%20%5BANIMATE%5D%20varighet%20til%20%5BNUM%5D%20sekunder%22%2C%22_set%20font%20to%20%5BFONT%5D%22%3A%22sett%20skrifttype%20til%20%5BFONT%5D%22%2C%22_set%20text%20color%20to%20%5BCOLOR%5D%22%3A%22sett%20tekstfarge%20til%20%5BCOLOR%5D%22%2C%22_set%20typing%20delay%20to%20%5BNUM%5D%20seconds%22%3A%22sett%20skriveforsinkelse%20til%20%5BNUM%5D%20sekunder%22%2C%22_set%20width%20to%20%5BWIDTH%5D%22%3A%22sett%20bredde%20til%20%5BWIDTH%5D%22%2C%22_set%20width%20to%20%5BWIDTH%5D%20aligned%20%5BALIGN%5D%22%3A%22sett%20bredde%20til%20%5BWIDTH%5D%20justert%20%5BALIGN%5D%22%2C%22_show%20sprite%22%3A%22vis%20sprite%22%2C%22_show%20text%20%5BTEXT%5D%22%3A%22vis%20tekst%20%5BTEXT%5D%22%2C%22_start%20%5BANIMATE%5D%20animation%22%3A%22start%20%5BANIMATE%5D%20animasjon%22%2C%22_text%20%5BATTRIBUTE%5D%22%3A%22tekst%20%5BATTRIBUTE%5D%22%2C%22_typing%20delay%22%3A%22skriveforsinkelse%22%2C%22disableCompatibilityMode%22%3A%22Dette%20vil%20aktivere%20nye%20blokker%20og%20funksjoner%20som%20ikke%20vil%20fungere%20i%20den%20offisielle%20Scratch%20Lab.%5Cn%5Cn%C3%98nsker%20du%20%C3%A5%20fortsette%3F%22%7D%2C%22nl%22%3A%7B%22_%23%20of%20lines%22%3A%22aantal%20regels%22%2C%22_%23%20of%20lines%20%5BWITH_WORD_WRAP%5D%22%3A%22aantal%20regels%20%5BWITH_WORD_WRAP%5D%22%2C%22_Animated%20Text%22%3A%22Geanimeerde%20tekst%22%2C%22_Enable%20Non-Scratch%20Lab%20Features%22%3A%22Niet-Scratch%20Lab%20Functies%20Inschakelen%22%2C%22_Hello!%22%3A%22Hallo!%22%2C%22_Here%20we%20go!%22%3A%22Daar%20gaan%20we!%22%2C%22_Incompatible%20with%20Scratch%20Lab%3A%22%3A%22Incompatibel%20met%20Scratch%20Lab%3A%22%2C%22_Welcome%20to%20my%20project!%22%3A%22Welkom%20bij%20mijn%20project!%22%2C%22_%5BANIMATE%5D%20duration%22%3A%22duur%20van%20%5BANIMATE%5D%22%2C%22_%5BANIMATE%5D%20text%20%5BTEXT%5D%22%3A%22%5BANIMATE%5D%20tekst%20%5BTEXT%5D%22%2C%22_add%20line%20%5BTEXT%5D%22%3A%22voeg%20regel%20%5BTEXT%5D%20toe%22%2C%22_align%20text%20to%20%5BALIGN%5D%22%3A%22lijn%20tekst%20%5BALIGN%5D%20uit%22%2C%22_animate%20%5BANIMATE%5D%20until%20done%22%3A%22start%20animatie%20%5BANIMATE%5D%20en%20wacht%22%2C%22_center%22%3A%22midden%22%2C%22_displayed%20text%22%3A%22weergegeven%20tekst%22%2C%22_is%20animating%3F%22%3A%22animatie%20bezig%3F%22%2C%22_is%20showing%20text%3F%22%3A%22tekst%20aan%20het%20tonen%3F%22%2C%22_left%22%3A%22links%22%2C%22_rainbow%22%3A%22regenboog%22%2C%22_random%20font%22%3A%22willekeurig%20lettertype%22%2C%22_reset%20%5BANIMATE%5D%20duration%22%3A%22reset%20duur%20van%20%5BANIMATE%5D%22%2C%22_reset%20text%20width%22%3A%22reset%20tekstbreedte%22%2C%22_reset%20typing%20delay%22%3A%22reset%20wachttijd%20van%20typ-animatie%22%2C%22_right%22%3A%22rechts%22%2C%22_set%20%5BANIMATE%5D%20duration%20to%20%5BNUM%5D%20seconds%22%3A%22maak%20duur%20van%20%5BANIMATE%5D%20%5BNUM%5D%20seconden%22%2C%22_set%20font%20to%20%5BFONT%5D%22%3A%22maak%20lettertype%20%5BFONT%5D%22%2C%22_set%20text%20color%20to%20%5BCOLOR%5D%22%3A%22maak%20tekstkleur%20%5BCOLOR%5D%22%2C%22_set%20typing%20delay%20to%20%5BNUM%5D%20seconds%22%3A%22maak%20wachttijd%20van%20typ-animatie%20%5BNUM%5D%20seconden%22%2C%22_set%20width%20to%20%5BWIDTH%5D%22%3A%22maak%20breedte%20%5BWIDTH%5D%22%2C%22_set%20width%20to%20%5BWIDTH%5D%20aligned%20%5BALIGN%5D%22%3A%22maak%20breedte%20%5BWIDTH%5D%20%5BALIGN%5D%20uitgelijnd%22%2C%22_show%20sprite%22%3A%22toon%20sprite%22%2C%22_show%20text%20%5BTEXT%5D%22%3A%22toon%20tekst%20%5BTEXT%5D%22%2C%22_start%20%5BANIMATE%5D%20animation%22%3A%22start%20animatie%20%5BANIMATE%5D%22%2C%22_text%20%5BATTRIBUTE%5D%22%3A%22%5BATTRIBUTE%5D%20van%20tekst%22%2C%22_type%22%3A%22typen%22%2C%22_typing%20delay%22%3A%22wachttijd%20van%20typ-animatie%22%2C%22_with%20word%20wrap%22%3A%22met%20tekstterugloop%22%2C%22_without%20word%20wrap%22%3A%22zonder%20tekstterugloop%22%2C%22disableCompatibilityMode%22%3A%22Dit%20voegt%20nieuwe%20blokken%20en%20functies%20toe%20die%20NIET%20werken%20in%20het%20offici%C3%ABle%20Scratch%20Lab.%5Cn%5CnWil%20je%20verdergaan%3F%22%7D%2C%22pl%22%3A%7B%22_Animated%20Text%22%3A%22Animowany%20Tekst%22%2C%22_Hello!%22%3A%22Cze%C5%9B%C4%87!%22%7D%2C%22ru%22%3A%7B%22_%23%20of%20lines%22%3A%22%D0%BA%D0%BE%D0%BB-%D0%B2%D0%BE%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%22%2C%22_%23%20of%20lines%20%5BWITH_WORD_WRAP%5D%22%3A%22%23%20%5BWITH_WORD_WRAP%5D%22%2C%22_Animated%20Text%22%3A%22%D0%90%D0%BD%D0%B8%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9%20%D0%A2%D0%B5%D0%BA%D1%81%D1%82%22%2C%22_Enable%20Non-Scratch%20Lab%20Features%22%3A%22%D0%92%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%D1%8C%20%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B8%20%D0%BD%D0%B5%20%D0%B8%D0%B7%20Scratch%20Lab%22%2C%22_Hello!%22%3A%22%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82!%22%2C%22_Here%20we%20go!%22%3A%22%D0%9F%D0%BE%D0%B5%D1%85%D0%B0%D0%BB%D0%B8!%22%2C%22_Incompatible%20with%20Scratch%20Lab%3A%22%3A%22%D0%9D%D0%B5%D1%81%D0%BE%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%B8%D0%BC%D0%BE%20%D1%81%D0%BE%20Scratch%20Lab%3A%22%2C%22_Welcome%20to%20my%20project!%22%3A%22%D0%94%D0%BE%D0%B1%D1%80%D0%BE%20%D0%BF%D0%BE%D0%B6%D0%B0%D0%BB%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%D0%B2%20%D0%BC%D0%BE%D0%B9%20%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82!%22%2C%22_%5BANIMATE%5D%20duration%22%3A%22%D0%BF%D1%80%D0%BE%D0%B4%D0%BE%D0%BB%D0%B6%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C%20%D0%B0%D0%BD%D0%B8%D0%BC%D0%B0%D1%86%D0%B8%D0%B8%20%5BANIMATE%5D%20%22%2C%22_%5BANIMATE%5D%20text%20%5BTEXT%5D%22%3A%22%5BANIMATE%5D%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%20%5BTEXT%5D%22%2C%22_add%20line%20%5BTEXT%5D%22%3A%22%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D1%83%20%5BTEXT%5D%22%2C%22_align%20text%20to%20%5BALIGN%5D%22%3A%22%D0%B2%D1%8B%D1%80%D0%BE%D0%B2%D0%BD%D1%8F%D1%82%D1%8C%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%20%D0%BF%D0%BE%20%5BALIGN%5D%22%2C%22_animate%20%5BANIMATE%5D%20until%20done%22%3A%22%D0%B0%D0%BD%D0%B8%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20%5BANIMATE%5D%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%20%D0%B4%D0%BE%20%D0%BA%D0%BE%D0%BD%D1%86%D0%B0%22%2C%22_center%22%3A%22%D1%86%D0%B5%D0%BD%D1%82%D1%80%D1%83%22%2C%22_displayed%20text%22%3A%22%D0%BF%D0%BE%D0%BA%D0%B0%D0%B7%D0%B0%D0%BD%D0%BD%D1%8B%D0%B9%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%22%2C%22_is%20animating%3F%22%3A%22%D0%B0%D0%BD%D0%B8%D0%BC%D0%B8%D1%80%D1%83%D0%B5%D1%82%D1%81%D1%8F%3F%22%2C%22_is%20showing%20text%3F%22%3A%22%D0%BF%D0%BE%D0%BA%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%B5%D1%82%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%3F%22%2C%22_left%22%3A%22%D0%BB%D0%B5%D0%B2%D0%BE%D0%BC%D1%83%20%D0%BA%D1%80%D0%B0%D1%8E%22%2C%22_rainbow%22%3A%22%D1%80%D0%B0%D0%B4%D1%83%D0%B6%D0%BD%D1%8B%D0%B9%22%2C%22_random%20font%22%3A%22%D1%81%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D1%8B%D0%B9%20%D1%88%D1%80%D0%B8%D1%84%D1%82%22%2C%22_reset%20%5BANIMATE%5D%20duration%22%3A%22%D1%81%D0%B1%D1%80%D0%BE%D1%81%D0%B8%D1%82%D1%8C%20%D0%BF%D1%80%D0%BE%D0%B4%D0%BE%D0%BB%D0%B6%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C%20%D0%B0%D0%BD%D0%B8%D0%BC%D0%B0%D1%86%D0%B8%D0%B8%20%5BANIMATE%5D%22%2C%22_reset%20text%20width%22%3A%22%D1%81%D0%B1%D1%80%D0%BE%D1%81%D0%B8%D1%82%D1%8C%20%D1%88%D0%B8%D1%80%D0%B8%D0%BD%D1%83%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0%22%2C%22_reset%20typing%20delay%22%3A%22%D1%81%D0%B1%D1%80%D0%BE%D1%81%D0%B8%D1%82%D1%8C%20%D0%B7%D0%B0%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D1%83%20%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D0%B0%D0%BD%D0%B8%D1%8F%22%2C%22_right%22%3A%22%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D0%BC%D1%83%20%D0%BA%D1%80%D0%B0%D1%8E%22%2C%22_set%20%5BANIMATE%5D%20duration%20to%20%5BNUM%5D%20seconds%22%3A%22%D0%B7%D0%B0%D0%B4%D0%B0%D1%82%D1%8C%20%D0%BF%D1%80%D0%BE%D0%B4%D0%BE%D0%BB%D0%B6%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C%20%D0%B0%D0%BD%D0%B8%D0%BC%D0%B0%D1%86%D0%B8%D0%B8%20%5BANIMATE%5D%20%D0%B2%20%5BNUM%5D%20%D1%81%D0%B5%D0%BA%D1%83%D0%BD%D0%B4%22%2C%22_set%20font%20to%20%5BFONT%5D%22%3A%22%D0%B7%D0%B0%D0%B4%D0%B0%D1%82%D1%8C%20%D1%88%D1%80%D0%B8%D1%84%D1%82%20%D0%B2%20%5BFONT%5D%22%2C%22_set%20outline%20color%20to%20%5BCOLOR%5D%22%3A%22%D0%B7%D0%B0%D0%B4%D0%B0%D1%82%D1%8C%20%D1%86%D0%B2%D0%B5%D1%82%20%D0%BE%D0%B1%D0%B2%D0%BE%D0%B4%D0%BA%D0%B5%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%5BCOLOR%5D%22%2C%22_set%20outline%20width%20to%20%5BWIDTH%5D%22%3A%22%D0%B7%D0%B0%D0%B4%D0%B0%D1%82%D1%8C%20%D1%88%D0%B8%D1%80%D0%B8%D0%BD%D0%B5%20%D0%BE%D0%B1%D0%B2%D0%BE%D0%B4%D0%BA%D0%B8%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%5BWIDTH%5D%22%2C%22_set%20shake%20intensity%20to%20%5BNUM%5D%25%22%3A%22%D0%B7%D0%B0%D0%B4%D0%B0%D1%82%D1%8C%20%D1%81%D0%B8%D0%BB%D1%83%20%D1%82%D1%80%D1%8F%D1%81%D0%BA%D0%B8%20%D0%BD%D0%B0%5BNUM%5D%25%22%2C%22_set%20text%20color%20to%20%5BCOLOR%5D%22%3A%22%D0%B7%D0%B0%D0%B4%D0%B0%D1%82%D1%8C%20%D1%86%D0%B2%D0%B5%D1%82%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0%20%D0%B2%20%5BCOLOR%5D%22%2C%22_set%20typing%20delay%20to%20%5BNUM%5D%20seconds%22%3A%22%D0%B7%D0%B0%D0%B4%D0%B0%D1%82%D1%8C%20%D0%B7%D0%B0%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D1%83%20%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D0%B0%D0%BD%D0%B8%D1%8F%20%D0%B2%20%5BNUM%5D%20%D1%81%D0%B5%D0%BA%D1%83%D0%BD%D0%B4%22%2C%22_set%20width%20to%20%5BWIDTH%5D%22%3A%22%D0%B7%D0%B0%D0%B4%D0%B0%D1%82%D1%8C%20%D1%88%D0%B8%D1%80%D0%B8%D0%BD%D1%83%20%D0%B2%20%5BWIDTH%5D%22%2C%22_set%20width%20to%20%5BWIDTH%5D%20aligned%20%5BALIGN%5D%22%3A%22%D0%B7%D0%B0%D0%B4%D0%B0%D1%82%D1%8C%20%D1%88%D0%B8%D1%80%D0%B8%D0%BD%D1%83%20%D0%B2%20%5BWIDTH%5D%20%D0%B2%D1%8B%D1%80%D0%BE%D0%B2%D0%BD%D0%B5%D0%BD%D0%BD%D1%83%D1%8E%20%D0%BF%D0%BE%20%5BALIGN%5D%22%2C%22_show%20sprite%22%3A%22%D0%BF%D0%BE%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D1%8C%20%D1%81%D0%BF%D1%80%D0%B0%D0%B9%D1%82%22%2C%22_show%20text%20%5BTEXT%5D%22%3A%22%D0%BF%D0%BE%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D1%8C%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%20%5BTEXT%5D%22%2C%22_start%20%5BANIMATE%5D%20animation%22%3A%22%D0%BD%D0%B0%D1%87%D0%B0%D1%82%D1%8C%20%D0%B0%D0%BD%D0%B8%D0%BC%D0%B0%D1%86%D0%B8%D1%8E%20%5BANIMATE%5D%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%22%2C%22_text%20%5BATTRIBUTE%5D%22%3A%22%5BATTRIBUTE%5D%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%B0%22%2C%22_type%22%3A%22%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D0%B0%D1%8E%D1%89%D0%B8%D0%B9%D1%81%D1%8F%22%2C%22_typing%20delay%22%3A%22%D0%B7%D0%B0%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B0%20%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D0%B0%D0%BD%D0%B8%D1%8F%22%2C%22_with%20word%20wrap%22%3A%22%D1%81%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC%20%D1%81%D0%BB%D0%BE%D0%B2%22%2C%22_without%20word%20wrap%22%3A%22%D0%B1%D0%B5%D0%B7%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%B0%20%D1%81%D0%BB%D0%BE%D0%B2%22%2C%22_zoom%22%3A%22%D0%B2%D1%8B%D1%80%D0%B0%D1%81%D1%82%D0%B0%D1%8E%D1%89%D0%B8%D0%B9%22%2C%22disableCompatibilityMode%22%3A%22%D0%AD%D1%82%D0%BE%20%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D1%82%20%D0%BD%D0%BE%D0%B2%D1%8B%D0%B5%20%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8%20%D0%B8%20%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8%20%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B5%20%D0%9D%D0%95%20%D0%91%D0%A3%D0%94%D0%A3%D0%A2%20%D0%A0%D0%90%D0%91%D0%9E%D0%A2%D0%90%D0%A2%D0%AC%20%D0%B2%20%D0%BE%D1%84%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9%20%D0%BB%D0%B0%D0%B1%D0%BE%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B8%D0%B8%20Scratch.%5Cn%5Cn%D0%92%D1%8B%20%D0%B6%D0%B5%D0%BB%D0%B0%D0%B5%D1%82%D0%B5%20%D0%BF%D1%80%D0%BE%D0%B4%D0%BE%D0%BB%D0%B6%D0%B8%D1%82%D1%8C%3F%22%7D%2C%22uk%22%3A%7B%22_%23%20of%20lines%22%3A%22%D0%BA%D1%96%D0%BB%D1%8C%D0%BA%D1%96%D1%81%D1%82%D1%8C%20%D0%BB%D1%96%D0%BD%D1%96%D0%B9%22%2C%22_%23%20of%20lines%20%5BWITH_WORD_WRAP%5D%22%3A%22%D0%BA%D1%96%D0%BB%D1%8C%D0%BA%D1%96%D1%81%D1%82%D1%8C%20%D0%BB%D1%96%D0%BD%D1%96%D0%B9%20%5BWITH_WORD_WRAP%5D%22%2C%22_Animated%20Text%22%3A%22%D0%90%D0%BD%D1%96%D0%BC%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B9%20%D0%A2%D0%B5%D0%BA%D1%81%D1%82%22%2C%22_Enable%20Non-Scratch%20Lab%20Features%22%3A%22%D0%A3%D0%B2%D1%96%D0%BC%D0%BA%D0%BD%D1%83%D1%82%D0%B8%20%D0%91%D0%BB%D0%BE%D0%BA%D0%B8%20%D0%9F%D0%BE%D0%B7%D0%B0%20Scratch%20Lab%22%2C%22_Hello!%22%3A%22%D0%9F%D1%80%D0%B8%D0%B2%D1%96%D1%82!%22%2C%22_Here%20we%20go!%22%3A%22%D0%9F%D0%BE%D1%87%D0%B8%D0%BD%D0%B0%D1%94%D0%BC%D0%BE!%22%2C%22_Incompatible%20with%20Scratch%20Lab%3A%22%3A%22%D0%9D%D0%B5%D1%81%D1%83%D0%BC%D1%96%D1%81%D0%BD%D1%96%20%D1%96%D0%B7%20Scratch%20Lab%3A%22%2C%22_Welcome%20to%20my%20project!%22%3A%22%D0%92%D1%96%D1%82%D0%B0%D1%94%D0%BC%D0%BE%20%D1%83%20%D0%BC%D0%BE%D1%94%D0%BC%D1%83%20%D0%BF%D1%80%D0%BE%D1%94%D0%BA%D1%82%D1%96!%22%2C%22_%5BANIMATE%5D%20duration%22%3A%22%D1%82%D1%80%D0%B8%D0%B2%D0%B0%D0%BB%D1%96%D1%81%D1%82%D1%8C%20%5BANIMATE%5D%22%2C%22_%5BANIMATE%5D%20text%20%5BTEXT%5D%22%3A%22%5BANIMATE%5D%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%20%5BTEXT%5D%22%2C%22_add%20line%20%5BTEXT%5D%22%3A%22%D0%B4%D0%BE%D0%B4%D0%B0%D1%82%D0%B8%20%D0%BB%D1%96%D0%BD%D1%96%D1%8E%20%5BTEXT%5D%22%2C%22_animate%20%5BANIMATE%5D%20until%20done%22%3A%22%D0%B0%D0%BD%D1%96%D0%BC%D1%83%D0%B2%D0%B0%D1%82%D0%B8%5BANIMATE%5D%20%D0%B4%D0%BE%20%D0%BA%D1%96%D0%BD%D1%86%D1%8F%22%2C%22_center%22%3A%22%D1%86%D0%B5%D0%BD%D1%82%D1%80%22%2C%22_displayed%20text%22%3A%22%D0%BF%D0%BE%D0%BA%D0%B0%D0%B7%D0%B0%D0%BD%D0%B8%D0%B9%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%22%2C%22_is%20animating%3F%22%3A%22%D0%B0%D0%BD%D1%96%D0%BC%D1%83%D1%94%D1%82%D1%8C%D1%81%D1%8F%3F%22%2C%22_is%20showing%20text%3F%22%3A%22%D0%BF%D0%BE%D0%BA%D0%B0%D0%B7%D1%83%D1%94%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%3F%22%2C%22_left%22%3A%22%D0%BB%D1%96%D0%B2%D0%BE%22%2C%22_rainbow%22%3A%22%D0%B2%D0%B5%D1%81%D0%B5%D0%BB%D0%BA%D0%B0%22%2C%22_random%20font%22%3A%22%D0%B2%D0%B8%D0%BF%D0%B0%D0%B4%D0%BA%D0%BE%D0%B2%D0%B8%D0%B9%20%D1%88%D1%80%D0%B8%D1%84%D1%82%22%2C%22_reset%20%5BANIMATE%5D%20duration%22%3A%22%D1%81%D0%BA%D0%B8%D0%BD%D1%83%D1%82%D0%B8%20%D1%82%D1%80%D0%B8%D0%B2%D0%B0%D0%BB%D1%96%D1%81%D1%82%D1%8C%20%5BANIMATE%5D%22%2C%22_reset%20text%20width%22%3A%22%D1%81%D0%BA%D0%B8%D0%BD%D1%83%D1%82%D0%B8%20%D1%88%D0%B8%D1%80%D0%B8%D0%BD%D1%83%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%D1%83%22%2C%22_reset%20typing%20delay%22%3A%22%D1%81%D0%BA%D0%B8%D0%BD%D1%83%D1%82%D0%B8%20%D0%B7%D0%B0%D1%82%D1%80%D0%B8%D0%BC%D0%BA%D1%83%20%D0%BD%D0%B0%D0%B1%D0%B8%D1%80%D0%B0%D0%BD%D0%BD%D1%8F%22%2C%22_right%22%3A%22%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%22%2C%22_set%20%5BANIMATE%5D%20duration%20to%20%5BNUM%5D%20seconds%22%3A%22%D0%B2%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D0%B8%20%D1%82%D1%80%D0%B8%D0%B2%D0%B0%D0%BB%D1%96%D1%81%D1%82%D1%8C%20%5BANIMATE%5D%20%D0%B4%D0%BE%20%5BNUM%5D%20%D1%81%D0%B5%D0%BA%D1%83%D0%BD%D0%B4%22%2C%22_set%20font%20to%20%5BFONT%5D%22%3A%22%D0%B2%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D0%B8%20%D1%88%D1%80%D0%B8%D1%84%D1%82%20%5BFONT%5D%22%2C%22_set%20text%20color%20to%20%5BCOLOR%5D%22%3A%22%D0%B2%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D0%B8%20%D0%BA%D0%BE%D0%BB%D1%96%D1%80%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%D1%83%20%5BCOLOR%5D%22%2C%22_set%20typing%20delay%20to%20%5BNUM%5D%20seconds%22%3A%22%D0%B2%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D0%B8%20%D0%B7%D0%B0%D1%82%D1%80%D0%B8%D0%BC%D0%BA%D1%83%20%D0%BD%D0%B0%D0%B1%D0%B8%D1%80%D0%B0%D0%BD%D0%BD%D1%8F%20%5BNUM%5D%20%D1%81%D0%B5%D0%BA%D1%83%D0%BD%D0%B4%22%2C%22_set%20width%20to%20%5BWIDTH%5D%22%3A%22%D0%B2%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D0%B8%20%D1%88%D0%B8%D1%80%D0%B8%D0%BD%D1%83%20%5BWIDTH%5D%22%2C%22_set%20width%20to%20%5BWIDTH%5D%20aligned%20%5BALIGN%5D%22%3A%22%D0%B2%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D0%B8%20%D1%88%D0%B8%D1%80%D0%B8%D0%BD%D1%83%20%5BWIDTH%5D%20%D0%BF%D0%BE%20%5BALIGN%5D%22%2C%22_show%20sprite%22%3A%22%D0%BF%D0%BE%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D0%B8%20%D1%81%D0%BF%D1%80%D0%B0%D0%B9%D1%82%22%2C%22_show%20text%20%5BTEXT%5D%22%3A%22%D0%BF%D0%BE%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D0%B8%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%20%5BTEXT%5D%22%2C%22_start%20%5BANIMATE%5D%20animation%22%3A%22%D0%BF%D0%BE%D1%87%D0%B0%D1%82%D0%B8%20%D0%B0%D0%BD%D1%96%D0%BC%D0%B0%D1%86%D1%96%D1%8E%20%5BANIMATE%5D%22%2C%22_text%20%5BATTRIBUTE%5D%22%3A%22%5BATTRIBUTE%5D%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%D1%83%22%2C%22_type%22%3A%22%D0%BD%D0%B0%D0%B1%D0%B8%D1%80%D0%B0%D0%BD%D0%BD%D1%8F%22%2C%22_typing%20delay%22%3A%22%D0%B7%D0%B0%D1%82%D1%80%D0%B8%D0%BC%D0%BA%D0%B0%20%D0%BD%D0%B0%D0%B1%D0%B8%D1%80%D0%B0%D0%BD%D0%BD%D1%8F%22%2C%22_with%20word%20wrap%22%3A%22%D0%B7%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D0%BE%D0%BC%20%D1%81%D0%BB%D1%96%D0%B2%22%2C%22_without%20word%20wrap%22%3A%22%D0%B1%D0%B5%D0%B7%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81%D1%83%20%D1%81%D0%BB%D1%96%D0%B2%22%2C%22_zoom%22%3A%22%D0%B7%D1%83%D0%BC%22%2C%22disableCompatibilityMode%22%3A%22%D0%A6%D0%B5%20%D0%B4%D0%BE%D0%B4%D0%B0%D1%94%20%D0%BD%D0%BE%D0%B2%D1%96%20%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8%20%D1%8F%D0%BA%D1%96%20%D0%9D%D0%95%20%D0%9F%D0%A0%D0%90%D0%A6%D0%AE%D0%92%D0%90%D0%A2%D0%98%D0%9C%D0%A3%D0%A2%D0%AC%20%D0%BD%D0%B0%20%D0%BE%D1%84%D1%96%D1%86%D1%96%D0%B9%D0%BD%D1%96%D0%B9%20Scratch%20Lab.%5Cn%5Cn%D0%91%D0%B0%D0%B6%D0%B0%D1%94%D1%82%D0%B5%20%D0%BF%D1%80%D0%BE%D0%B4%D0%BE%D0%B2%D0%B6%D0%B8%D1%82%D0%B8%3F%22%7D%2C%22zh-cn%22%3A%7B%22_%23%20of%20lines%22%3A%22%E6%96%87%E6%9C%AC%E8%A1%8C%E6%95%B0%22%2C%22_%23%20of%20lines%20%5BWITH_WORD_WRAP%5D%22%3A%22%5BWITH_WORD_WRAP%5D%E6%97%B6%E7%9A%84%E8%A1%8C%E6%95%B0%22%2C%22_Animated%20Text%22%3A%22%E8%89%BA%E6%9C%AF%E5%AD%97%22%2C%22_Enable%20Non-Scratch%20Lab%20Features%22%3A%22%E6%98%BE%E7%A4%BA%E4%B8%8EScratch%20Lab%E4%B8%8D%E5%85%BC%E5%AE%B9%E7%9A%84%E7%A7%AF%E6%9C%A8%22%2C%22_Hello!%22%3A%22%E4%BD%A0%E5%A5%BD%EF%BC%81%22%2C%22_Here%20we%20go!%22%3A%22%E7%8E%B0%E5%9C%A8%E5%87%BA%E5%8F%91%EF%BC%81%22%2C%22_Incompatible%20with%20Scratch%20Lab%3A%22%3A%22%E4%BB%A5%E4%B8%8B%E7%A7%AF%E6%9C%A8%E4%B8%8EScratch%20Lab%E4%B8%8D%E5%85%BC%E5%AE%B9%EF%BC%9A%22%2C%22_Welcome%20to%20my%20project!%22%3A%22%E6%AC%A2%E8%BF%8E%E6%9D%A5%E5%88%B0%E6%88%91%E7%9A%84%E4%BD%9C%E5%93%81%EF%BC%81%22%2C%22_%5BANIMATE%5D%20duration%22%3A%22%E5%8A%A8%E7%94%BB%E6%A0%B7%E5%BC%8F%5BANIMATE%5D%E7%9A%84%E5%AE%8C%E6%88%90%E6%97%B6%E9%97%B4%22%2C%22_%5BANIMATE%5D%20text%20%5BTEXT%5D%22%3A%22%E6%98%BE%E7%A4%BA%E5%8A%A8%E7%94%BB%E6%A0%B7%E5%BC%8F%E6%98%AF%5BANIMATE%5D%E7%9A%84%E6%96%87%E6%9C%AC%5BTEXT%5D%22%2C%22_add%20line%20%5BTEXT%5D%22%3A%22%E5%A2%9E%E5%8A%A0%E4%B8%80%E8%A1%8C%E6%96%87%E6%9C%AC%5BTEXT%5D%22%2C%22_align%20text%20to%20%5BALIGN%5D%22%3A%22%E8%AE%BE%E7%BD%AE%E6%96%87%E6%9C%AC%E7%9A%84%E5%B1%95%E7%A4%BA%E6%A0%B7%E5%BC%8F%E4%B8%BA%5BALIGN%5D%22%2C%22_animate%20%5BANIMATE%5D%20until%20done%22%3A%22%E6%98%BE%E7%A4%BA%E5%8A%A8%E7%94%BB%E6%A0%B7%E5%BC%8F%5BANIMATE%5D%E5%B9%B6%E7%AD%89%E5%BE%85%22%2C%22_center%22%3A%22%E5%B1%85%E4%B8%AD%22%2C%22_displayed%20text%22%3A%22%E6%98%BE%E7%A4%BA%E7%9A%84%E6%96%87%E6%9C%AC%22%2C%22_is%20animating%3F%22%3A%22%E6%AD%A3%E5%9C%A8%E6%98%BE%E7%A4%BA%E8%89%BA%E6%9C%AF%E5%AD%97%EF%BC%9F%22%2C%22_is%20showing%20text%3F%22%3A%22%E6%96%87%E6%9C%AC%E6%98%BE%E7%A4%BA%E4%BA%86%EF%BC%9F%22%2C%22_left%22%3A%22%E5%B1%85%E5%B7%A6%22%2C%22_rainbow%22%3A%22%E5%BD%A9%E8%99%B9%E8%89%B2%22%2C%22_random%20font%22%3A%22%E9%9A%8F%E6%9C%BA%E5%AD%97%E4%BD%93%22%2C%22_reset%20%5BANIMATE%5D%20duration%22%3A%22%E9%87%8D%E7%BD%AE%E5%8A%A8%E7%94%BB%E6%A0%B7%E5%BC%8F%5BANIMATE%5D%E7%9A%84%E5%AE%8C%E6%88%90%E6%97%B6%E9%97%B4%22%2C%22_reset%20text%20width%22%3A%22%E9%87%8D%E7%BD%AE%E6%96%87%E6%9C%AC%E5%AE%BD%E5%BA%A6%22%2C%22_reset%20typing%20delay%22%3A%22%E9%87%8D%E7%BD%AE%E9%80%90%E5%AD%97%E6%98%BE%E7%A4%BA%E9%80%9F%E5%BA%A6%22%2C%22_right%22%3A%22%E5%B1%85%E5%8F%B3%22%2C%22_set%20%5BANIMATE%5D%20duration%20to%20%5BNUM%5D%20seconds%22%3A%22%E8%AE%BE%E7%BD%AE%E5%8A%A8%E7%94%BB%E6%A0%B7%E5%BC%8F%5BANIMATE%5D%E7%9A%84%E5%AE%8C%E6%88%90%E6%97%B6%E9%97%B4%E6%98%AF%5BNUM%5D%E7%A7%92%22%2C%22_set%20font%20to%20%5BFONT%5D%22%3A%22%E8%AE%BE%E7%BD%AE%E6%96%87%E6%9C%AC%E7%9A%84%E5%AD%97%E4%BD%93%E4%B8%BA%5BFONT%5D%22%2C%22_set%20text%20color%20to%20%5BCOLOR%5D%22%3A%22%E8%AE%BE%E7%BD%AE%E6%96%87%E6%9C%AC%E7%9A%84%E9%A2%9C%E8%89%B2%E4%B8%BA%5BCOLOR%5D%22%2C%22_set%20typing%20delay%20to%20%5BNUM%5D%20seconds%22%3A%22%E8%AE%BE%E7%BD%AE%E9%80%90%E5%AD%97%E6%98%BE%E7%A4%BA%E9%80%9F%E5%BA%A6%E4%B8%BA%5BNUM%5D%E7%A7%92%2F%E5%AD%97%22%2C%22_set%20width%20to%20%5BWIDTH%5D%22%3A%22%E8%AE%BE%E7%BD%AE%E6%96%87%E6%9C%AC%E7%9A%84%E5%AE%BD%E5%BA%A6%E4%B8%BA%5BWIDTH%5D%22%2C%22_set%20width%20to%20%5BWIDTH%5D%20aligned%20%5BALIGN%5D%22%3A%22%E8%AE%BE%E7%BD%AE%5BALIGN%5D%E6%A0%B7%E5%BC%8F%E7%9A%84%E5%AE%BD%E5%BA%A6%E4%B8%BA%5BWIDTH%5D%22%2C%22_show%20sprite%22%3A%22%E6%98%BE%E7%A4%BA%E8%A7%92%E8%89%B2%22%2C%22_show%20text%20%5BTEXT%5D%22%3A%22%E6%98%BE%E7%A4%BA%E6%96%87%E6%9C%AC%5BTEXT%5D%22%2C%22_start%20%5BANIMATE%5D%20animation%22%3A%22%E6%98%BE%E7%A4%BA%E5%8A%A8%E7%94%BB%E6%A0%B7%E5%BC%8F%5BANIMATE%5D%22%2C%22_text%20%5BATTRIBUTE%5D%22%3A%22%E6%96%87%E6%9C%AC%E7%9A%84%5BATTRIBUTE%5D%22%2C%22_type%22%3A%22%E9%80%90%E5%AD%97%E6%98%BE%E7%A4%BA%22%2C%22_typing%20delay%22%3A%22%E9%80%90%E5%AD%97%E6%98%BE%E7%A4%BA%E9%80%9F%E5%BA%A6%22%2C%22_with%20word%20wrap%22%3A%22%E6%9C%89%E8%87%AA%E5%8A%A8%E6%8D%A2%E8%A1%8C%22%2C%22_without%20word%20wrap%22%3A%22%E4%B8%8D%E6%8D%A2%E8%A1%8C%22%2C%22_zoom%22%3A%22%E7%A7%BB%E5%8A%A8%E5%8A%A8%E7%94%BB%22%2C%22disableCompatibilityMode%22%3A%22%E8%BF%99%E5%B0%86%E4%BC%9A%E5%90%AF%E7%94%A8%E6%96%B0%E7%9A%84%E5%8A%9F%E8%83%BD%EF%BC%8C%E8%BF%99%E4%BA%9B%E7%A7%AF%E6%9C%A8%E6%98%AF%E4%B8%8D%E5%85%BC%E5%AE%B9Scratch%20Lab%E3%80%82%5Cn%5Cn%E6%98%AF%E5%90%A6%E5%90%AF%E7%94%A8%E6%96%B0%E5%8A%9F%E8%83%BD%EF%BC%9F%22%7D%7D)%3B%2F*%20end%20generated%20l10n%20code%20*%2F(function%20(Scratch)%20%7B%0A%20%20%22use%20strict%22%3B%0A%0A%20%20%2F%2F%20This%20extension%20was%20created%20by%20making%20projects%20with%20https%3A%2F%2Flab.scratch.mit.edu%2Ftext%2F%0A%20%20%2F%2F%20To%20determine%20block%20and%20argument%20IDs%2C%20we%20extracted%20project.json%20and%20examined%20the%20result.%0A%20%20%2F%2F%20To%20determine%20block%20behaviors%20we%20simply%20experiment%20with%20Scratch%20Lab%20and%20made%20sure%20our%0A%20%20%2F%2F%20blocks%20do%20the%20same%20things.%0A%20%20%2F%2F%20This%20extension's%20code%20is%20not%20based%20on%20the%20source%20code%20of%20Scratch%20Lab's.%0A%0A%20%20%2F%2F%20by%20%40LilyMakesThings%0A%20%20const%20blockIconURI%20%3D%0A%20%20%20%20%22data%3Aimage%2Fsvg%2Bxml%3B%2C%253Csvg%2520xmlns%253D%2522http%253A%252F%252Fwww.w3.org%252F2000%252Fsvg%2522%2520width%253D%2522284.242%2522%2520height%253D%2522284.242%2522%253E%253Cg%2520fill-rule%253D%2522evenodd%2522%2520stroke-miterlimit%253D%252210%2522%2520data-paper-data%253D%2522%257B%2526quot%253BisPaintingLayer%2526quot%253B%253Atrue%257D%2522%2520style%253D%2522mix-blend-mode%253Anormal%2522%253E%253Cpath%2520fill%253D%2522none%2522%2520d%253D%2522M188.894%2520119.459c-.706%25202.378-1.43%25204.69-2.172%25206.933-1.05%25203.15-2.21%25206.445-3.48%25209.888a1671.47%25201671.47%25200%25200%25200-4.174%252011.462l-5.73%252015.528h30.833l-5.73-15.528a522.83%2520522.83%25200%25200%25201-4.065-11.242%2520408.343%2520408.343%25200%25200%25201-3.37-10.108%2520350.767%2520350.767%25200%25200%25201-2.112-6.933zm18.519-56.092%252062.329%2520157.508H225.43l-9.636-26.111h-54.08l-9.636%252026.11h-43.432l62.768-157.507Z%2522%252F%253E%253Cpath%2520fill%253D%2522%252396f%2522%2520stroke%253D%2522%25237240d6%2522%2520stroke-linejoin%253D%2522round%2522%2520stroke-width%253D%252229%2522%2520d%253D%2522M188.894%2520119.459c-.706%25202.378-1.43%25204.69-2.172%25206.933-1.05%25203.15-2.21%25206.445-3.48%25209.888a1671.47%25201671.47%25200%25200%25200-4.174%252011.462l-5.73%252015.528h30.833l-5.73-15.528a522.83%2520522.83%25200%25200%25201-4.065-11.242%2520408.343%2520408.343%25200%25200%25201-3.37-10.108%2520350.767%2520350.767%25200%25200%25201-2.112-6.933zm18.519-56.092%252062.329%2520157.508H225.43l-9.636-26.111h-54.08l-9.636%252026.11h-43.432l62.768-157.507Z%2522%252F%253E%253Cpath%2520fill%253D%2522none%2522%2520d%253D%2522M188.894%2520119.459c-.706%25202.378-1.43%25204.69-2.172%25206.933-1.05%25203.15-2.21%25206.445-3.48%25209.888a1671.47%25201671.47%25200%25200%25200-4.174%252011.462l-5.73%252015.528h30.833l-5.73-15.528a522.827%2520522.827%25200%25200%25201-4.065-11.242%2520408.302%2520408.302%25200%25200%25201-3.37-10.108%2520350.767%2520350.767%25200%25200%25201-2.112-6.933zm18.519-56.092%252062.329%2520157.508H225.43l-9.636-26.111h-54.08l-9.636%252026.11h-43.432l62.768-157.507Z%2522%252F%253E%253Cpath%2520fill%253D%2522%2523ffa24d%2522%2520stroke%253D%2522%2523fff%2522%2520stroke-linejoin%253D%2522round%2522%2520stroke-width%253D%25229%2522%2520d%253D%2522M188.894%2520119.459c-.706%25202.378-1.43%25204.69-2.172%25206.933-1.05%25203.15-2.21%25206.445-3.48%25209.888a1671.47%25201671.47%25200%25200%25200-4.174%252011.462l-5.73%252015.528h30.833l-5.73-15.528a522.827%2520522.827%25200%25200%25201-4.065-11.242%2520408.302%2520408.302%25200%25200%25201-3.37-10.108%2520350.767%2520350.767%25200%25200%25201-2.112-6.933zm18.519-56.092%252062.329%2520157.508H225.43l-9.636-26.111h-54.08l-9.636%252026.11h-43.432l62.768-157.507Z%2522%252F%253E%253Cpath%2520fill%253D%2522none%2522%2520d%253D%2522M143.696%2520119.459c-.706%25202.378-1.43%25204.69-2.172%25206.933-1.05%25203.15-2.21%25206.445-3.479%25209.888a1671.47%25201671.47%25200%25200%25200-4.175%252011.462l-5.73%252015.528h30.833l-5.73-15.528a522.827%2520522.827%25200%25200%25201-4.065-11.242%2520408.343%2520408.343%25200%25200%25201-3.37-10.108%2520350.767%2520350.767%25200%25200%25201-2.112-6.933zm18.519-56.092%252062.33%2520157.508h-44.312l-9.637-26.111h-54.08l-9.636%252026.11H63.448l62.768-157.507Z%2522%252F%253E%253Cpath%2520fill%253D%2522%252396f%2522%2520stroke%253D%2522%25237240d6%2522%2520stroke-linejoin%253D%2522round%2522%2520stroke-width%253D%252229%2522%2520d%253D%2522M143.696%2520119.459c-.706%25202.378-1.43%25204.69-2.172%25206.933-1.05%25203.15-2.21%25206.445-3.479%25209.888a1671.47%25201671.47%25200%25200%25200-4.175%252011.462l-5.73%252015.528h30.833l-5.73-15.528a522.827%2520522.827%25200%25200%25201-4.065-11.242%2520408.343%2520408.343%25200%25200%25201-3.37-10.108%2520350.767%2520350.767%25200%25200%25201-2.112-6.933zm18.519-56.092%252062.33%2520157.508h-44.312l-9.637-26.111h-54.08l-9.636%252026.11H63.448l62.768-157.507Z%2522%252F%253E%253Cpath%2520fill%253D%2522none%2522%2520d%253D%2522M143.696%2520119.459c-.706%25202.378-1.43%25204.69-2.172%25206.933-1.05%25203.15-2.21%25206.445-3.479%25209.888a1671.47%25201671.47%25200%25200%25200-4.175%252011.462l-5.73%252015.528h30.833l-5.73-15.528a522.827%2520522.827%25200%25200%25201-4.065-11.242%2520408.343%2520408.343%25200%25200%25201-3.37-10.108%2520350.767%2520350.767%25200%25200%25201-2.112-6.933zm18.519-56.092%252062.33%2520157.508h-44.312l-9.637-26.111h-54.08l-9.636%252026.11H63.448l62.768-157.507Z%2522%252F%253E%253Cpath%2520fill%253D%2522%2523ff774d%2522%2520stroke%253D%2522%2523fff%2522%2520stroke-linejoin%253D%2522round%2522%2520stroke-width%253D%25229%2522%2520d%253D%2522M143.696%2520119.459c-.706%25202.378-1.43%25204.69-2.172%25206.933-1.05%25203.15-2.21%25206.445-3.479%25209.888a1671.47%25201671.47%25200%25200%25200-4.175%252011.462l-5.73%252015.528h30.833l-5.73-15.528a522.827%2520522.827%25200%25200%25201-4.065-11.242%2520408.343%2520408.343%25200%25200%25201-3.37-10.108%2520350.767%2520350.767%25200%25200%25201-2.112-6.933zm18.519-56.092%252062.33%2520157.508h-44.312l-9.637-26.111h-54.08l-9.636%252026.11H63.448l62.768-157.507Z%2522%252F%253E%253Cpath%2520fill%253D%2522none%2522%2520d%253D%2522M94.748%2520119.459c-.706%25202.378-1.43%25204.69-2.172%25206.933-1.05%25203.15-2.21%25206.445-3.479%25209.888-1.27%25203.442-2.66%25207.263-4.175%252011.462l-5.73%252015.528h30.833l-5.73-15.528a522.885%2520522.885%25200%25200%25201-4.065-11.242%2520408.343%2520408.343%25200%25200%25201-3.37-10.108%2520350.767%2520350.767%25200%25200%25201-2.112-6.933zm18.52-56.092%252062.328%2520157.508h-44.311l-9.637-26.111h-54.08l-9.635%252026.11H14.5L77.269%252063.368Z%2522%252F%253E%253Cpath%2520fill%253D%2522%252396f%2522%2520stroke%253D%2522%25237240d6%2522%2520stroke-linejoin%253D%2522round%2522%2520stroke-width%253D%252229%2522%2520d%253D%2522M94.748%2520119.459c-.706%25202.378-1.43%25204.69-2.172%25206.933-1.05%25203.15-2.21%25206.445-3.479%25209.888-1.27%25203.442-2.66%25207.263-4.175%252011.462l-5.73%252015.528h30.833l-5.73-15.528a522.885%2520522.885%25200%25200%25201-4.065-11.242%2520408.343%2520408.343%25200%25200%25201-3.37-10.108%2520350.767%2520350.767%25200%25200%25201-2.112-6.933zm18.52-56.092%252062.328%2520157.508h-44.311l-9.637-26.111h-54.08l-9.635%252026.11H14.5L77.269%252063.368Z%2522%252F%253E%253Cpath%2520fill%253D%2522none%2522%2520d%253D%2522M94.748%2520119.459c-.706%25202.378-1.43%25204.69-2.172%25206.933-1.05%25203.15-2.21%25206.445-3.479%25209.888-1.27%25203.442-2.66%25207.263-4.175%252011.462l-5.73%252015.528h30.833l-5.73-15.528a522.885%2520522.885%25200%25200%25201-4.065-11.242%2520408.302%2520408.302%25200%25200%25201-3.37-10.108%2520350.767%2520350.767%25200%25200%25201-2.112-6.933zm18.52-56.092%252062.328%2520157.508h-44.311l-9.637-26.111h-54.08l-9.635%252026.11H14.5L77.269%252063.368Z%2522%252F%253E%253Cpath%2520fill%253D%2522%2523ff4c4c%2522%2520stroke%253D%2522%2523fff%2522%2520stroke-linejoin%253D%2522round%2522%2520stroke-width%253D%25229%2522%2520d%253D%2522M94.748%2520119.459c-.706%25202.378-1.43%25204.69-2.172%25206.933-1.05%25203.15-2.21%25206.445-3.479%25209.888-1.27%25203.442-2.66%25207.263-4.175%252011.462l-5.73%252015.528h30.833l-5.73-15.528a522.885%2520522.885%25200%25200%25201-4.065-11.242%2520408.302%2520408.302%25200%25200%25201-3.37-10.108%2520350.767%2520350.767%25200%25200%25201-2.112-6.933zm18.52-56.092%252062.328%2520157.508h-44.311l-9.637-26.111h-54.08l-9.635%252026.11H14.5L77.269%252063.368Z%2522%252F%253E%253C%252Fg%253E%253C%252Fsvg%253E%22%3B%0A%0A%20%20const%20CUSTOM_STATE_KEY%20%3D%20Symbol()%3B%0A%0A%20%20const%20ALIGN_LEFT%20%3D%200%3B%0A%20%20const%20ALIGN_RIGHT%20%3D%201%3B%0A%20%20const%20ALIGN_CENTER%20%3D%202%3B%0A%0A%20%20const%20vm%20%3D%20Scratch.vm%3B%0A%20%20const%20renderer%20%3D%20vm.renderer%3B%0A%20%20const%20gl%20%3D%20renderer.gl%3B%0A%0A%20%20let%20compatibilityMode%20%3D%20true%3B%0A%0A%20%20const%20FONTS%20%3D%20%5B%0A%20%20%20%20%22Sans%20Serif%22%2C%0A%20%20%20%20%22Serif%22%2C%0A%20%20%20%20%22Handwriting%22%2C%0A%20%20%20%20%22Marker%22%2C%0A%20%20%20%20%22Curly%22%2C%0A%20%20%20%20%22Pixel%22%2C%0A%20%20%20%20%22Scratch%22%2C%0A%20%20%5D%3B%0A%0A%20%20const%20DEFAULT_COLOR%20%3D%20%22%23575e75%22%3B%0A%20%20const%20DEFAULT_FONT%20%3D%20%22Handwriting%22%3B%0A%20%20const%20DEFAULT_ALIGN%20%3D%20ALIGN_CENTER%3B%0A%20%20const%20DEFAULT_FONT_SIZE%20%3D%2024%3B%0A%20%20const%20DEFAULT_OUTLINE_WIDTH%20%3D%200%3B%20%2F%2F%200%20%3D%20no%20outline%0A%20%20const%20DEFAULT_OUTLINE_COLOR%20%3D%20%22%23000000%22%3B%0A%0A%20%20const%20DEFAULT_TYPE_DELAY%20%3D%201000%20%2F%2015%3B%0A%0A%20%20const%20RAINBOW_TIME_PER%20%3D%201000%3B%0A%20%20const%20DEFAULT_RAINBOW_DURATION%20%3D%202000%3B%0A%0A%20%20const%20DEFAULT_ZOOM_DURATION%20%3D%20500%3B%0A%0A%20%20const%20DEFAULT_SHAKE_INTENSITY%20%3D%20100%3B%0A%20%20const%20DEFAULT_SHAKE_DURATION%20%3D%20500%3B%0A%0A%20%20let%20globalFrameTime%20%3D%200%3B%0A%0A%20%20%2F**%0A%20%20%20*%20%40typedef%20TextState%0A%20%20%20*%20%40property%20%7BTextCostumeSkin%7D%20skin%0A%20%20%20*%2F%0A%0A%20%20%2F%2F%20temporary%0A%20%20if%20(!renderer.exports%20%7C%7C%20!renderer.exports.Skin%20%7C%7C%20!vm.exports)%20%7B%0A%20%20%20%20alert(%22VM%20is%20too%20old%20for%20animated%20text%20extension%22)%3B%0A%20%20%20%20throw%20new%20Error(%22VM%20is%20too%20old%22)%3B%0A%20%20%7D%0A%0A%20%20const%20Skin%20%3D%20renderer.exports.Skin%3B%0A%20%20const%20CanvasMeasurementProvider%20%3D%20renderer.exports.CanvasMeasurementProvider%3B%0A%20%20const%20twgl%20%3D%20renderer.exports.twgl%3B%0A%20%20const%20RenderedTarget%20%3D%20vm.exports.RenderedTarget%3B%0A%0A%20%20%2F**%0A%20%20%20*%20%40param%20%7Bnumber%7D%20c%0A%20%20%20*%20%40returns%20%7Bstring%7D%0A%20%20%20*%2F%0A%20%20const%20formatComponent%20%3D%20(c)%20%3D%3E%20Math.round(c).toString(16).padStart(2%2C%20%220%22)%3B%0A%0A%20%20%2F**%0A%20%20%20*%20%40param%20%7B%5Bnumber%2C%20number%2C%20number%5D%7D%20color%0A%20%20%20*%20%40returns%20%7Bstring%7D%0A%20%20%20*%2F%0A%20%20const%20formatColor%20%3D%20(color)%20%3D%3E%0A%20%20%20%20%60%23%24%7BformatComponent(color%5B0%5D)%7D%24%7BformatComponent(color%5B1%5D)%7D%24%7BformatComponent(%0A%20%20%20%20%20%20color%5B2%5D%0A%20%20%20%20)%7D%60%3B%0A%0A%20%20%2F**%0A%20%20%20*%20%40param%20%7Bnumber%7D%20h%20hue%20from%200-1%0A%20%20%20*%20%40param%20%7Bnumber%7D%20s%20saturation%20from%200-1%0A%20%20%20*%20%40param%20%7Bnumber%7D%20v%20value%20from%200-1%0A%20%20%20*%20%40returns%20%7B%5Bnumber%2C%20number%2C%20number%5D%7D%20RGB%20channels%20from%200-255%0A%20%20%20*%2F%0A%20%20const%20hsvToRGB%20%3D%20(h%2C%20s%2C%20v)%20%3D%3E%20%7B%0A%20%20%20%20%2F%2F%20https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FHSL_and_HSV%0A%20%20%20%20var%20r%2C%20g%2C%20b%3B%0A%20%20%20%20var%20i%20%3D%20Math.floor(h%20*%206)%3B%0A%20%20%20%20var%20f%20%3D%20h%20*%206%20-%20i%3B%0A%20%20%20%20var%20p%20%3D%20v%20*%20(1%20-%20s)%3B%0A%20%20%20%20var%20q%20%3D%20v%20*%20(1%20-%20f%20*%20s)%3B%0A%20%20%20%20var%20t%20%3D%20v%20*%20(1%20-%20(1%20-%20f)%20*%20s)%3B%0A%20%20%20%20switch%20(i%20%25%206)%20%7B%0A%20%20%20%20%20%20case%200%3A%0A%20%20%20%20%20%20%20%20(r%20%3D%20v)%2C%20(g%20%3D%20t)%2C%20(b%20%3D%20p)%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20case%201%3A%0A%20%20%20%20%20%20%20%20(r%20%3D%20q)%2C%20(g%20%3D%20v)%2C%20(b%20%3D%20p)%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20case%202%3A%0A%20%20%20%20%20%20%20%20(r%20%3D%20p)%2C%20(g%20%3D%20v)%2C%20(b%20%3D%20t)%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20case%203%3A%0A%20%20%20%20%20%20%20%20(r%20%3D%20p)%2C%20(g%20%3D%20q)%2C%20(b%20%3D%20v)%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20case%204%3A%0A%20%20%20%20%20%20%20%20(r%20%3D%20t)%2C%20(g%20%3D%20p)%2C%20(b%20%3D%20v)%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20case%205%3A%0A%20%20%20%20%20%20%20%20(r%20%3D%20v)%2C%20(g%20%3D%20p)%2C%20(b%20%3D%20q)%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20%5B(r%20*%20255)%20%7C%200%2C%20(g%20*%20255)%20%7C%200%2C%20(b%20*%20255)%20%7C%200%5D%3B%0A%20%20%7D%3B%0A%0A%20%20%2F**%0A%20%20%20*%20%40param%20%7BCanvasGradient%7D%20gradient%0A%20%20%20*%20%40param%20%7Bnumber%7D%20offset%20number%20of%20cycles%20to%20offset%20by%0A%20%20%20*%2F%0A%20%20const%20addRainbowStops%20%3D%20(gradient%2C%20offset)%20%3D%3E%20%7B%0A%20%20%20%20const%20NUMBER_STOPS%20%3D%2020%3B%0A%20%20%20%20for%20(let%20i%20%3D%200%3B%20i%20%3C%20NUMBER_STOPS%3B%20i%2B%2B)%20%7B%0A%20%20%20%20%20%20const%20exactPosition%20%3D%20i%20%2F%20NUMBER_STOPS%3B%0A%20%20%20%20%20%20let%20offsetPosition%20%3D%20(exactPosition%20-%20offset)%20%25%201%3B%0A%20%20%20%20%20%20if%20(offsetPosition%20%3C%200)%20%7B%0A%20%20%20%20%20%20%20%20offsetPosition%20%2B%3D%201%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20const%20rgb%20%3D%20hsvToRGB(offsetPosition%2C%201%2C%201)%3B%0A%20%20%20%20%20%20gradient.addColorStop(exactPosition%2C%20formatColor(rgb))%3B%0A%20%20%20%20%7D%0A%20%20%7D%3B%0A%0A%20%20class%20TextCostumeSkin%20extends%20Skin%20%7B%0A%20%20%20%20constructor(id%2C%20drawable)%20%7B%0A%20%20%20%20%20%20super(id%2C%20renderer)%3B%0A%0A%20%20%20%20%20%20%2F**%20%40type%20%7BRenderWebGL.Drawable%7D%20*%2F%0A%20%20%20%20%20%20this.drawable%20%3D%20drawable%3B%0A%20%20%20%20%20%20%2F**%20%40type%20%7Bnumber%7D%20*%2F%0A%20%20%20%20%20%20this._previousDrawableXScale%20%3D%20100%3B%0A%0A%20%20%20%20%20%20this.canvas%20%3D%20document.createElement(%22canvas%22)%3B%0A%20%20%20%20%20%20this.canvas.width%20%3D%200%3B%0A%20%20%20%20%20%20this.canvas.height%20%3D%200%3B%0A%20%20%20%20%20%20this.ctx%20%3D%20this.canvas.getContext(%222d%22)%3B%0A%0A%20%20%20%20%20%20this.text%20%3D%20%22%22%3B%0A%20%20%20%20%20%20this.color%20%3D%20DEFAULT_COLOR%3B%0A%20%20%20%20%20%20this.textWidth%20%3D%20vm.runtime.stageWidth%3B%0A%20%20%20%20%20%20this.fontFamily%20%3D%20DEFAULT_FONT%3B%0A%20%20%20%20%20%20this.baseFontSize%20%3D%20DEFAULT_FONT_SIZE%3B%0A%20%20%20%20%20%20this.align%20%3D%20DEFAULT_ALIGN%3B%0A%20%20%20%20%20%20this.outlineWidth%20%3D%20DEFAULT_OUTLINE_WIDTH%3B%0A%20%20%20%20%20%20this.outlineColor%20%3D%20DEFAULT_OUTLINE_COLOR%3B%0A%0A%20%20%20%20%20%20%2F**%20%40type%20%7BArray%3C%7Btext%3A%20string%3B%20width%3A%20number%3B%7D%3E%7D%20*%2F%0A%20%20%20%20%20%20this.lines%20%3D%20%5B%5D%3B%0A%20%20%20%20%20%20%2F**%20%40type%20%7B%5Bnumber%2C%20number%5D%7D%20*%2F%0A%20%20%20%20%20%20this._size%20%3D%20%5B0%2C%200%5D%3B%0A%20%20%20%20%20%20%2F**%20%40type%20%7B%5Bnumber%2C%20number%5D%7D%20*%2F%0A%20%20%20%20%20%20this._rotationCenter%20%3D%20%5B0%2C%200%5D%3B%0A%0A%20%20%20%20%20%20%2F%2F%20Updated%20in%20_updateFontDimensions%0A%20%20%20%20%20%20this.calculatedFontSize%20%3D%200%3B%0A%20%20%20%20%20%20this.lineHeight%20%3D%200%3B%0A%20%20%20%20%20%20this.verticalPadding%20%3D%200%3B%0A%20%20%20%20%20%20this.wrapWidth%20%3D%200%3B%0A%0A%20%20%20%20%20%20this._textDirty%20%3D%20false%3B%0A%20%20%20%20%20%20this._textureDirty%20%3D%20false%3B%0A%20%20%20%20%20%20this._renderedAtScale%20%3D%201%3B%0A%20%20%20%20%20%20this._renderTime%20%3D%200%3B%0A%20%20%20%20%20%20this._reflowTime%20%3D%200%3B%0A%0A%20%20%20%20%20%20this.isTyping%20%3D%20false%3B%0A%20%20%20%20%20%20this.typeAnimationInterval%20%3D%20null%3B%0A%20%20%20%20%20%20this.typeDelay%20%3D%20DEFAULT_TYPE_DELAY%3B%0A%0A%20%20%20%20%20%20this.isRainbow%20%3D%20false%3B%0A%20%20%20%20%20%20this.rainbowStartTime%20%3D%200%3B%0A%20%20%20%20%20%20this.rainbowTimeout%20%3D%20null%3B%0A%20%20%20%20%20%20this.rainbowDuration%20%3D%20DEFAULT_RAINBOW_DURATION%3B%0A%0A%20%20%20%20%20%20this.isZooming%20%3D%20false%3B%0A%20%20%20%20%20%20this.zoomStartTime%20%3D%200%3B%0A%20%20%20%20%20%20this.zoomTimeout%20%3D%20null%3B%0A%20%20%20%20%20%20this.zoomDuration%20%3D%20DEFAULT_ZOOM_DURATION%3B%0A%0A%20%20%20%20%20%20this.isShaking%20%3D%20false%3B%0A%20%20%20%20%20%20this.shakeStartTime%20%3D%200%3B%0A%20%20%20%20%20%20this.shakeTimeout%20%3D%20null%3B%0A%20%20%20%20%20%20this.shakeDuration%20%3D%20DEFAULT_SHAKE_DURATION%3B%0A%20%20%20%20%20%20this.shakeIntensity%20%3D%20DEFAULT_SHAKE_INTENSITY%3B%0A%0A%20%20%20%20%20%20%2F**%20%40type%20%7B(()%20%3D%3E%20void)%7Cnull%7D%20*%2F%0A%20%20%20%20%20%20this.resolveOngoingAnimation%20%3D%20null%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20Part%20of%20Skin%20API%0A%20%20%20%20dispose()%20%7B%0A%20%20%20%20%20%20if%20(this._texture)%20%7B%0A%20%20%20%20%20%20%20%20gl.deleteTexture(this._texture)%3B%0A%20%20%20%20%20%20%20%20this._texture%20%3D%20null%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20this.canvas%20%3D%20null%3B%0A%20%20%20%20%20%20this.ctx%20%3D%20null%3B%0A%20%20%20%20%20%20super.dispose()%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20Part%20of%20Skin%20API%0A%20%20%20%20get%20size()%20%7B%0A%20%20%20%20%20%20if%20(this._needsReflow())%20%7B%0A%20%20%20%20%20%20%20%20this._reflowText()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20return%20this._size%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20Part%20of%20Skin%20API%0A%20%20%20%20useNearest()%20%7B%0A%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20_needsReflow()%20%7B%0A%20%20%20%20%20%20return%20(%0A%20%20%20%20%20%20%20%20this._textDirty%20%7C%7C%0A%20%20%20%20%20%20%20%20(this.isZooming%20%26%26%20this._reflowTime%20!%3D%3D%20globalFrameTime)%20%7C%7C%0A%20%20%20%20%20%20%20%20(this.isShaking%20%26%26%20this._reflowTime%20!%3D%3D%20globalFrameTime)%20%7C%7C%0A%20%20%20%20%20%20%20%20this._previousDrawableXScale%20!%3D%3D%20Math.abs(this.drawable.scale%5B0%5D)%0A%20%20%20%20%20%20)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20_updateFontDimensions()%20%7B%0A%20%20%20%20%20%20this.calculatedFontSize%20%3D%20this.baseFontSize%3B%0A%20%20%20%20%20%20if%20(this.isZooming)%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20TODO%3A%20it%20looks%20like%20Scratch's%20animation%20always%20starts%20at%20least%20a%20little%20visible%0A%20%20%20%20%20%20%20%20const%20time%20%3D%20globalFrameTime%20-%20this.zoomStartTime%3B%0A%20%20%20%20%20%20%20%20const%20progress%20%3D%20Math.max(0%2C%20Math.min(1%2C%20time%20%2F%20this.zoomDuration))%3B%0A%20%20%20%20%20%20%20%20this.calculatedFontSize%20*%3D%20progress%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20this.lineHeight%20%3D%20(this.baseFontSize%20*%208)%20%2F%207%3B%0A%20%20%20%20%20%20%2F%2F%20Always%20use%20the%20base%20size%20for%20padding.%20This%20makes%20the%20zoom%20animation%20look%20better.%0A%20%20%20%20%20%20this.verticalPadding%20%3D%20this.baseFontSize%20%2F%207%3B%0A%20%20%20%20%20%20%2F%2F%20Only%20use%20horizontal%20scale%20for%20wrap%20width%20for%20compatibility%20with%20stretch%20extension.%0A%20%20%20%20%20%20this.wrapWidth%20%3D%0A%20%20%20%20%20%20%20%20this.textWidth%20%2F%20(Math.abs(this.drawable.scale%5B0%5D)%20%2F%20100)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20_getFontStyle()%20%7B%0A%20%20%20%20%20%20return%20%60%24%7Bthis.calculatedFontSize%7Dpx%20%24%7Bthis.fontFamily%7D%2C%20sans-serif%60%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20_reflowText()%20%7B%0A%20%20%20%20%20%20this._textDirty%20%3D%20false%3B%0A%20%20%20%20%20%20this._textureDirty%20%3D%20true%3B%0A%20%20%20%20%20%20this._reflowTime%20%3D%20globalFrameTime%3B%0A%20%20%20%20%20%20this._previousDrawableXScale%20%3D%20Math.abs(this.drawable.scale%5B0%5D)%3B%0A%0A%20%20%20%20%20%20this._updateFontDimensions()%3B%0A%20%20%20%20%20%20this.ctx.font%20%3D%20this._getFontStyle()%3B%0A%0A%20%20%20%20%20%20%2F%2F%20need%20to%20make%20new%20ones%20each%20time%20to%20avoid%20caching%20incorrectly%20across%20fonts%0A%20%20%20%20%20%20const%20measurementProvider%20%3D%20new%20CanvasMeasurementProvider(this.ctx)%3B%0A%20%20%20%20%20%20%2F**%20%40type%20%7BRenderWebGL.TextWrapper%7D%20*%2F%0A%20%20%20%20%20%20const%20textWrapper%20%3D%20renderer.createTextWrapper(measurementProvider)%3B%0A%0A%20%20%20%20%20%20const%20lines%20%3D%20textWrapper.wrapText(this.wrapWidth%2C%20this.text)%3B%0A%20%20%20%20%20%20this.lines%20%3D%20lines.map((line)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20const%20trimmed%20%3D%20line.trimEnd()%3B%0A%20%20%20%20%20%20%20%20return%20%7B%0A%20%20%20%20%20%20%20%20%20%20text%3A%20trimmed%2C%0A%20%20%20%20%20%20%20%20%20%20width%3A%20measurementProvider.measureText(trimmed)%2C%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%7D)%3B%0A%0A%20%20%20%20%20%20this._size%5B0%5D%20%3D%20this.wrapWidth%20%2B%202%20*%20this.outlineWidth%3B%0A%20%20%20%20%20%20this._size%5B1%5D%20%3D%0A%20%20%20%20%20%20%20%20this.lines.length%20*%20this.lineHeight%20%2B%0A%20%20%20%20%20%20%20%202%20*%20this.verticalPadding%20%2B%0A%20%20%20%20%20%20%20%202%20*%20this.outlineWidth%3B%0A%0A%20%20%20%20%20%20%2F%2F%20Centered%20horizontally%0A%20%20%20%20%20%20this._rotationCenter%5B0%5D%20%3D%20this._size%5B0%5D%20%2F%202%3B%0A%20%20%20%20%20%20%2F%2F%20Vertical%20center%20is%20roughly%20below%20the%20first%20line%20of%20text%0A%20%20%20%20%20%20this._rotationCenter%5B1%5D%20%3D%0A%20%20%20%20%20%20%20%20this.calculatedFontSize%20*%200.9%20%2B%0A%20%20%20%20%20%20%20%20this.verticalPadding%20%2B%0A%20%20%20%20%20%20%20%20this.outlineWidth%3B%0A%0A%20%20%20%20%20%20if%20(this.isShaking)%20%7B%0A%20%20%20%20%20%20%20%20const%20padding%20%3D%20Math.max(0%2C%20this.shakeIntensity%20%2F%2020)%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20offsets%20should%20be%20in%20range%20%5B-padding%2C%20%2Bpadding%5D%0A%20%20%20%20%20%20%20%20this._rotationCenter%5B0%5D%20%2B%3D%202%20*%20Math.random()%20*%20padding%20-%20padding%3B%0A%20%20%20%20%20%20%20%20this._rotationCenter%5B1%5D%20%2B%3D%202%20*%20Math.random()%20*%20padding%20-%20padding%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20_renderAtScale(requestedScale)%20%7B%0A%20%20%20%20%20%20this._renderedAtScale%20%3D%20requestedScale%3B%0A%20%20%20%20%20%20this._textureDirty%20%3D%20false%3B%0A%20%20%20%20%20%20this._renderTime%20%3D%20globalFrameTime%3B%0A%0A%20%20%20%20%20%20const%20scratchWidth%20%3D%20this._size%5B0%5D%3B%0A%20%20%20%20%20%20const%20scratchHeight%20%3D%20this._size%5B1%5D%3B%0A%0A%20%20%20%20%20%20%2F%2F%20Renderer's%20requested%20scale%20is%20accounted%20for%20at%20this%20point.%20Do%20not%20touch%20%60requestedScale%60%0A%20%20%20%20%20%20%2F%2F%20ever%20after%20this%20point.%0A%20%20%20%20%20%20this.canvas.width%20%3D%20Math.ceil(scratchWidth%20*%20requestedScale)%3B%0A%20%20%20%20%20%20this.canvas.height%20%3D%20Math.ceil(scratchHeight%20*%20requestedScale)%3B%0A%20%20%20%20%20%20this.ctx.scale(requestedScale%2C%20requestedScale)%3B%0A%0A%20%20%20%20%20%20this.ctx.translate(this.outlineWidth%2C%20this.outlineWidth)%3B%0A%0A%20%20%20%20%20%20const%20rainbowOffset%20%3D%20this.isRainbow%0A%20%20%20%20%20%20%20%20%3F%20(globalFrameTime%20-%20this.rainbowStartTime)%20%2F%20RAINBOW_TIME_PER%0A%20%20%20%20%20%20%20%20%3A%200%3B%0A%20%20%20%20%20%20this.ctx.fillStyle%20%3D%20this.color%3B%0A%20%20%20%20%20%20this.ctx.font%20%3D%20this._getFontStyle()%3B%0A%20%20%20%20%20%20for%20(let%20i%20%3D%200%3B%20i%20%3C%20this.lines.length%3B%20i%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20const%20line%20%3D%20this.lines%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20const%20text%20%3D%20line.text%3B%0A%20%20%20%20%20%20%20%20const%20lineWidth%20%3D%20line.width%3B%0A%0A%20%20%20%20%20%20%20%20let%20xOffset%3B%0A%20%20%20%20%20%20%20%20const%20yOffset%20%3D%0A%20%20%20%20%20%20%20%20%20%20this.verticalPadding%20%2B%20i%20*%20this.lineHeight%20%2B%20this.baseFontSize%3B%0A%20%20%20%20%20%20%20%20if%20(this.align%20%3D%3D%3D%20ALIGN_LEFT)%20%7B%0A%20%20%20%20%20%20%20%20%20%20xOffset%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20if%20(this.align%20%3D%3D%3D%20ALIGN_CENTER)%20%7B%0A%20%20%20%20%20%20%20%20%20%20xOffset%20%3D%20(this.wrapWidth%20-%20lineWidth)%20%2F%202%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20xOffset%20%3D%20this.wrapWidth%20-%20lineWidth%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20if%20(this.isRainbow)%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20gradient%20%3D%20this.ctx.createLinearGradient(%0A%20%20%20%20%20%20%20%20%20%20%20%20xOffset%2C%0A%20%20%20%20%20%20%20%20%20%20%20%200%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20xOffset%20%2B%20lineWidth%2C%0A%20%20%20%20%20%20%20%20%20%20%20%200%0A%20%20%20%20%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20%20%20%20%20addRainbowStops(gradient%2C%20rainbowOffset)%3B%0A%20%20%20%20%20%20%20%20%20%20this.ctx.fillStyle%20%3D%20gradient%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20if%20(this.outlineWidth%20%3E%200)%20%7B%0A%20%20%20%20%20%20%20%20%20%20this.ctx.lineWidth%20%3D%20this.outlineWidth%3B%0A%20%20%20%20%20%20%20%20%20%20this.ctx.strokeStyle%20%3D%20this.outlineColor%3B%0A%20%20%20%20%20%20%20%20%20%20this.ctx.lineCap%20%3D%20%22round%22%3B%0A%20%20%20%20%20%20%20%20%20%20this.ctx.lineJoin%20%3D%20%22round%22%3B%0A%20%20%20%20%20%20%20%20%20%20this.ctx.strokeText(text%2C%20xOffset%2C%20yOffset)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20TODO%3A%20we're%20still%20a%20few%20pixels%20off%20of%20Scratch%20Lab%0A%20%20%20%20%20%20%20%20this.ctx.fillText(text%2C%20xOffset%2C%20yOffset)%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20if%20(!this._texture)%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20%40ts-expect-error%20-%20twgl%20not%20typed%20yet%0A%20%20%20%20%20%20%20%20this._texture%20%3D%20twgl.createTexture(gl%2C%20%7B%0A%20%20%20%20%20%20%20%20%20%20auto%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20wrap%3A%20gl.CLAMP_TO_EDGE%2C%0A%20%20%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20this._setTexture(this.canvas)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20_invalidateTexture()%20%7B%0A%20%20%20%20%20%20this._textureDirty%20%3D%20true%3B%0A%20%20%20%20%20%20this._renderTime%20%3D%200%3B%0A%20%20%20%20%20%20this.emitWasAltered()%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20_invalidateText()%20%7B%0A%20%20%20%20%20%20this._textDirty%20%3D%20true%3B%0A%20%20%20%20%20%20this._textureDirty%20%3D%20true%3B%0A%20%20%20%20%20%20this._reflowTime%20%3D%200%3B%0A%20%20%20%20%20%20this.emitWasAltered()%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setText(text)%20%7B%0A%20%20%20%20%20%20if%20(text%20!%3D%3D%20this.text)%20%7B%0A%20%20%20%20%20%20%20%20this.text%20%3D%20text%3B%0A%20%20%20%20%20%20%20%20this._invalidateText()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20setColor(color)%20%7B%0A%20%20%20%20%20%20if%20(color%20!%3D%3D%20this.color)%20%7B%0A%20%20%20%20%20%20%20%20this.color%20%3D%20color%3B%0A%20%20%20%20%20%20%20%20this._invalidateTexture()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20setOutlineColor(color)%20%7B%0A%20%20%20%20%20%20if%20(color%20!%3D%3D%20this.color)%20%7B%0A%20%20%20%20%20%20%20%20this.outlineColor%20%3D%20color%3B%0A%20%20%20%20%20%20%20%20this._invalidateTexture()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20setOutlineWidth(width)%20%7B%0A%20%20%20%20%20%20this.outlineWidth%20%3D%20width%3B%0A%20%20%20%20%20%20this._invalidateText()%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setAlign(align)%20%7B%0A%20%20%20%20%20%20if%20(align%20!%3D%3D%20this.align)%20%7B%0A%20%20%20%20%20%20%20%20this.align%20%3D%20align%3B%0A%20%20%20%20%20%20%20%20this._invalidateTexture()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20setWidth(width)%20%7B%0A%20%20%20%20%20%20if%20(width%20!%3D%3D%20this.textWidth)%20%7B%0A%20%20%20%20%20%20%20%20this.textWidth%20%3D%20width%3B%0A%20%20%20%20%20%20%20%20this._invalidateText()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20setFontFamily(font)%20%7B%0A%20%20%20%20%20%20if%20(font%20!%3D%3D%20this.fontFamily)%20%7B%0A%20%20%20%20%20%20%20%20this.fontFamily%20%3D%20font%3B%0A%20%20%20%20%20%20%20%20this._invalidateText()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20getFontFamily()%20%7B%0A%20%20%20%20%20%20return%20this.fontFamily%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getColor()%20%7B%0A%20%20%20%20%20%20return%20this.color%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getWidth()%20%7B%0A%20%20%20%20%20%20return%20this.textWidth%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getOutlineColor()%20%7B%0A%20%20%20%20%20%20return%20this.outlineColor%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getOutlineWidth()%20%7B%0A%20%20%20%20%20%20return%20this.outlineWidth%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getAlign()%20%7B%0A%20%20%20%20%20%20return%20this.align%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20_oneAnimationAtATime(newCallback)%20%7B%0A%20%20%20%20%20%20this.cancelAnimation()%3B%0A%20%20%20%20%20%20return%20new%20Promise((resolve)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20this.resolveOngoingAnimation%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20this.resolveOngoingAnimation%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20%20%20resolve()%3B%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20newCallback(this.resolveOngoingAnimation)%3B%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20startTypeAnimation()%20%7B%0A%20%20%20%20%20%20return%20this._oneAnimationAtATime((resolve)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20this.isTyping%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20const%20originalText%20%3D%20this.text%3B%0A%20%20%20%20%20%20%20%20let%20i%20%3D%201%3B%0A%20%20%20%20%20%20%20%20const%20update%20%3D%20()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20this.setText(originalText.substring(0%2C%20i))%3B%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20update()%3B%0A%0A%20%20%20%20%20%20%20%20this.typeAnimationInterval%20%3D%20setInterval(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20i%2B%2B%3B%0A%20%20%20%20%20%20%20%20%20%20update()%3B%0A%20%20%20%20%20%20%20%20%20%20if%20(i%20%3E%3D%20originalText.length)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20clearInterval(this.typeAnimationInterval)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.isTyping%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20resolve()%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%2C%20this.typeDelay)%3B%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setTypeDelay(delay)%20%7B%0A%20%20%20%20%20%20this.typeDelay%20%3D%20delay%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20startRainbowAnimation()%20%7B%0A%20%20%20%20%20%20return%20this._oneAnimationAtATime((resolve)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20this.isRainbow%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20this.rainbowStartTime%20%3D%20Date.now()%3B%0A%20%20%20%20%20%20%20%20this._invalidateTexture()%3B%0A%20%20%20%20%20%20%20%20this.rainbowTimeout%20%3D%20setTimeout(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20this.isRainbow%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20resolve()%3B%0A%20%20%20%20%20%20%20%20%20%20this._invalidateTexture()%3B%0A%20%20%20%20%20%20%20%20%7D%2C%20this.rainbowDuration)%3B%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setRainbowDuration(duration)%20%7B%0A%20%20%20%20%20%20this.rainbowDuration%20%3D%20duration%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20startZoomAnimation()%20%7B%0A%20%20%20%20%20%20return%20this._oneAnimationAtATime((resolve)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20this.isZooming%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20this.zoomStartTime%20%3D%20Date.now()%3B%0A%20%20%20%20%20%20%20%20this._invalidateText()%3B%0A%20%20%20%20%20%20%20%20this.zoomTimeout%20%3D%20setTimeout(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20this.isZooming%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20resolve()%3B%0A%20%20%20%20%20%20%20%20%20%20this._invalidateText()%3B%0A%20%20%20%20%20%20%20%20%7D%2C%20this.zoomDuration)%3B%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setZoomDuration(duration)%20%7B%0A%20%20%20%20%20%20this.zoomDuration%20%3D%20duration%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20startShakeAnimation()%20%7B%0A%20%20%20%20%20%20return%20this._oneAnimationAtATime((resolve)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20this.isShaking%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20this.shakeStartTime%20%3D%20Date.now()%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20TODO%3A%20_invalidateText()%20is%20not%20smart%20enough%20to%20realize%20that%20we%20don't%20need%20to%20actually%0A%20%20%20%20%20%20%20%20%2F%2F%20do%20a%20full%20reflow%2C%20just%20update%20rotation%20center...%0A%20%20%20%20%20%20%20%20this._invalidateText()%3B%0A%20%20%20%20%20%20%20%20this.shakeTimeout%20%3D%20setTimeout(()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20this.isShaking%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20resolve()%3B%0A%20%20%20%20%20%20%20%20%20%20this._invalidateText()%3B%0A%20%20%20%20%20%20%20%20%7D%2C%20this.shakeDuration)%3B%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setShakeDuration(duration)%20%7B%0A%20%20%20%20%20%20this.shakeDuration%20%3D%20duration%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setShakeIntensity(intensity)%20%7B%0A%20%20%20%20%20%20this.shakeIntensity%20%3D%20intensity%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20cancelAnimation()%20%7B%0A%20%20%20%20%20%20if%20(this.resolveOngoingAnimation)%20%7B%0A%20%20%20%20%20%20%20%20this.resolveOngoingAnimation()%3B%0A%20%20%20%20%20%20%20%20this.resolveOngoingAnimation%20%3D%20null%3B%0A%0A%20%20%20%20%20%20%20%20this.isTyping%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20clearInterval(this.typeAnimationInterval)%3B%0A%0A%20%20%20%20%20%20%20%20this.isRainbow%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20clearTimeout(this.rainbowTimeout)%3B%0A%0A%20%20%20%20%20%20%20%20this.isZooming%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20clearTimeout(this.zoomTimeout)%3B%0A%0A%20%20%20%20%20%20%20%20this.isShaking%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20clearTimeout(this.shakeTimeout)%3B%0A%0A%20%20%20%20%20%20%20%20%2F%2F%20TODO%3A%20sometimes%20we%20only%20need%20to%20invalidate%20the%20texture%20at%20this%20point%0A%20%20%20%20%20%20%20%20this._invalidateText()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20Part%20of%20Skin%20API%0A%20%20%20%20updateSilhouette(scale)%20%7B%0A%20%20%20%20%20%20this.getTexture(scale)%3B%0A%20%20%20%20%20%20this._silhouette.unlazy()%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F%2F%20Part%20of%20Skin%20API%0A%20%20%20%20getTexture(scale)%20%7B%0A%20%20%20%20%20%20const%20MAX_SCALE%20%3D%2010%3B%0A%20%20%20%20%20%20const%20upperScale%20%3D%20scale%0A%20%20%20%20%20%20%20%20%3F%20Math.max(Math.abs(scale%5B0%5D)%2C%20Math.abs(scale%5B1%5D))%0A%20%20%20%20%20%20%20%20%3A%20100%3B%0A%20%20%20%20%20%20const%20calculatedScale%20%3D%20Math.min(MAX_SCALE%2C%20upperScale%20%2F%20100)%3B%0A%0A%20%20%20%20%20%20if%20(this._needsReflow())%20%7B%0A%20%20%20%20%20%20%20%20this._reflowText()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20if%20(%0A%20%20%20%20%20%20%20%20this._textureDirty%20%7C%7C%0A%20%20%20%20%20%20%20%20(this.isRainbow%20%26%26%20this._renderTime%20!%3D%3D%20globalFrameTime)%20%7C%7C%0A%20%20%20%20%20%20%20%20calculatedScale%20!%3D%3D%20this._renderedAtScale%0A%20%20%20%20%20%20)%20%7B%0A%20%20%20%20%20%20%20%20this._renderAtScale(calculatedScale)%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20return%20this._texture%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20%2F**%0A%20%20%20*%20Note%20that%20the%20returned%20skin%20is%20only%20usable%20by%20the%20given%20target.%20Things%20will%20break%20if%20another%0A%20%20%20*%20target%20tries%20to%20use%20it.%0A%20%20%20*%20%40param%20%7BVM.Target%7D%20target%0A%20%20%20*%20%40returns%20%7BTextCostumeSkin%7D%0A%20%20%20*%2F%0A%20%20const%20createTextCostumeSkin%20%3D%20(target)%20%3D%3E%20%7B%0A%20%20%20%20const%20drawable%20%3D%20renderer._allDrawables%5Btarget.drawableID%5D%3B%0A%20%20%20%20const%20id%20%3D%20renderer._nextSkinId%2B%2B%3B%0A%20%20%20%20const%20skin%20%3D%20new%20TextCostumeSkin(id%2C%20drawable)%3B%0A%20%20%20%20renderer._allSkins%5Bid%5D%20%3D%20skin%3B%0A%20%20%20%20return%20skin%3B%0A%20%20%7D%3B%0A%0A%20%20vm.runtime.on(%22BEFORE_EXECUTE%22%2C%20()%20%3D%3E%20%7B%0A%20%20%20%20globalFrameTime%20%3D%20Date.now()%3B%0A%0A%20%20%20%20for%20(let%20i%20%3D%200%3B%20i%20%3C%20renderer._allSkins.length%3B%20i%2B%2B)%20%7B%0A%20%20%20%20%20%20const%20skin%20%3D%20renderer._allSkins%5Bi%5D%3B%0A%20%20%20%20%20%20if%20(%0A%20%20%20%20%20%20%20%20skin%20instanceof%20TextCostumeSkin%20%26%26%0A%20%20%20%20%20%20%20%20(skin.isRainbow%20%7C%7C%20skin.isZooming%20%7C%7C%20skin.isShaking)%0A%20%20%20%20%20%20)%20%7B%0A%20%20%20%20%20%20%20%20skin.emitWasAltered()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D)%3B%0A%0A%20%20class%20AnimatedText%20%7B%0A%20%20%20%20constructor()%20%7B%0A%20%20%20%20%20%20vm.runtime.on(%22PROJECT_START%22%2C%20()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20this._hideAllText()%3B%0A%20%20%20%20%20%20%7D)%3B%0A%0A%20%20%20%20%20%20vm.runtime.on(%22PROJECT_STOP_ALL%22%2C%20()%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20this._hideAllText()%3B%0A%20%20%20%20%20%20%7D)%3B%0A%0A%20%20%20%20%20%20%2F%2F%20targetWasCreated%20does%20not%20work%20because%20it%20runs%20before%20the%20Drawable%20is%20set%20up%0A%20%20%20%20%20%20const%20extension%20%3D%20this%3B%0A%20%20%20%20%20%20const%20originalMakeClone%20%3D%20RenderedTarget.prototype.makeClone%3B%0A%20%20%20%20%20%20RenderedTarget.prototype.makeClone%20%3D%20function%20()%20%7B%0A%20%20%20%20%20%20%20%20const%20newClone%20%3D%20originalMakeClone.call(this)%3B%0A%20%20%20%20%20%20%20%20if%20(extension._hasState(this))%20%7B%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20TODO%3A%20creates%20much%20unneeded%20state%0A%20%20%20%20%20%20%20%20%20%20const%20originalSkin%20%3D%20extension._getState(this).skin%3B%0A%20%20%20%20%20%20%20%20%20%20const%20newSkin%20%3D%20extension._getState(newClone).skin%3B%0A%20%20%20%20%20%20%20%20%20%20newSkin.setAlign(originalSkin.align)%3B%0A%20%20%20%20%20%20%20%20%20%20newSkin.setColor(originalSkin.color)%3B%0A%20%20%20%20%20%20%20%20%20%20newSkin.setFontFamily(originalSkin.fontFamily)%3B%0A%20%20%20%20%20%20%20%20%20%20newSkin.setWidth(originalSkin.textWidth)%3B%0A%20%20%20%20%20%20%20%20%20%20newSkin.setText(originalSkin.text)%3B%0A%20%20%20%20%20%20%20%20%20%20newSkin.setRainbowDuration(originalSkin.rainbowDuration)%3B%0A%20%20%20%20%20%20%20%20%20%20newSkin.setZoomDuration(originalSkin.zoomDuration)%3B%0A%20%20%20%20%20%20%20%20%20%20newSkin.setTypeDelay(originalSkin.typeDelay)%3B%0A%20%20%20%20%20%20%20%20%20%20if%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20renderer._allDrawables%5Bthis.drawableID%5D.skin%20instanceof%0A%20%20%20%20%20%20%20%20%20%20%20%20TextCostumeSkin%0A%20%20%20%20%20%20%20%20%20%20)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20renderer.updateDrawableSkinId(newClone.drawableID%2C%20newSkin.id)%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20return%20newClone%3B%0A%20%20%20%20%20%20%7D%3B%0A%0A%20%20%20%20%20%20vm.runtime.on(%22targetWasRemoved%22%2C%20(target)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20(this._hasState(target))%20%7B%0A%20%20%20%20%20%20%20%20%20%20const%20state%20%3D%20this._getState(target)%3B%0A%20%20%20%20%20%20%20%20%20%20renderer.destroySkin(state.skin.id)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getInfo()%20%7B%0A%20%20%20%20%20%20return%20%7B%0A%20%20%20%20%20%20%20%20id%3A%20%22text%22%2C%0A%20%20%20%20%20%20%20%20name%3A%20Scratch.translate(%22Animated%20Text%22)%2C%0A%20%20%20%20%20%20%20%20color1%3A%20%22%239966FF%22%2C%0A%20%20%20%20%20%20%20%20blockIconURI%3A%20blockIconURI%2C%0A%20%20%20%20%20%20%20%20blocks%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setText%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22show%20text%20%5BTEXT%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TEXT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20Scratch.translate(%22Welcome%20to%20my%20project!%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22animateText%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22%5BANIMATE%5D%20text%20%5BTEXT%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ANIMATE%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22animate%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22rainbow%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TEXT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20Scratch.translate(%22Here%20we%20go!%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20!compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22animateTextInput%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20func%3A%20%22animateText%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22%5BANIMATE%5D%20text%20%5BTEXT%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ANIMATE%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22twAnimate%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22rainbow%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TEXT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20Scratch.translate(%22Here%20we%20go!%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22clearText%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22show%20sprite%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setFont%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22set%20font%20to%20%5BFONT%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20FONT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22font%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20!compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setFontInput%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20func%3A%20%22setFont%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22set%20font%20to%20%5BFONT%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20FONT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22twFont%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setColor%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22set%20text%20color%20to%20%5BCOLOR%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20COLOR%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.COLOR%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setWidth%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22set%20width%20to%20%5BWIDTH%5D%20aligned%20%5BALIGN%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20WIDTH%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.NUMBER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22200%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ALIGN%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22align%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20!compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setWidthInput%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20func%3A%20%22setWidth%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22set%20width%20to%20%5BWIDTH%5D%20aligned%20%5BALIGN%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20WIDTH%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.NUMBER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22200%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ALIGN%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22twAlign%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%2F**%0A%20%20%20%20%20%20%20%20%20%20%20*%20Contributors%3A%0A%20%20%20%20%20%20%20%20%20%20%20*%20-%20LilyMakesThings%0A%20%20%20%20%20%20%20%20%20%20%20*%2F%0A%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20func%3A%20%22disableCompatibilityMode%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.BUTTON%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22Enable%20Non-Scratch%20Lab%20Features%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20!compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.LABEL%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22Incompatible%20with%20Scratch%20Lab%3A%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setOutlineWidth%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22set%20outline%20width%20to%20%5BWIDTH%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20WIDTH%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.NUMBER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%223%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setOutlineColor%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22set%20outline%20color%20to%20%5BCOLOR%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20COLOR%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.COLOR%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22addLine%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22add%20line%20%5BTEXT%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TEXT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20Scratch.translate(%22Hello!%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22getLines%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22%23%20of%20lines%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22getLinesV2%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20default%3A%20%22%23%20of%20lines%20%5BWITH_WORD_WRAP%5D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20description%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%5BWITH_WORD_WRAP%5D%20is%20a%20menu%20with%20choices%20'with%20word%20wrap'%20and%20'without%20word%20wrap'%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20WITH_WORD_WRAP%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22twWordWrap%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setAlignment%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22align%20text%20to%20%5BALIGN%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ALIGN%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22twAlign%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20why%20is%20the%20other%20block%20called%20%22setWidth%22%20%3A(%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setWidthValue%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22set%20width%20to%20%5BWIDTH%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20WIDTH%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.NUMBER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20200%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22resetWidth%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22reset%20text%20width%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22startAnimate%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22start%20%5BANIMATE%5D%20animation%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ANIMATE%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22twAnimate%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22rainbow%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22animateUntilDone%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22animate%20%5BANIMATE%5D%20until%20done%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ANIMATE%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22twAnimate%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22rainbow%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22isAnimating%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.BOOLEAN%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22is%20animating%3F%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setAnimateDuration%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22set%20%5BANIMATE%5D%20duration%20to%20%5BNUM%5D%20seconds%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ANIMATE%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22twAnimateDuration%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22rainbow%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20NUM%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.NUMBER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%203%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22resetAnimateDuration%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22reset%20%5BANIMATE%5D%20duration%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ANIMATE%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22twAnimateDuration%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22rainbow%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22getAnimateDuration%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22%5BANIMATE%5D%20duration%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ANIMATE%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22twAnimateDuration%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22rainbow%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setShakeIntensity%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22set%20shake%20intensity%20to%20%5BNUM%5D%25%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20NUM%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.NUMBER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20100%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22setTypeDelay%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22set%20typing%20delay%20to%20%5BNUM%5D%20seconds%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20NUM%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.NUMBER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%200.1%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22resetTypeDelay%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22reset%20typing%20delay%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22getTypeDelay%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22typing%20delay%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22textActive%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.BOOLEAN%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22is%20showing%20text%3F%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22getDisplayedText%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22displayed%20text%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22getTextAttribute%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22text%20%5BATTRIBUTE%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20ATTRIBUTE%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22attribute%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20disableMonitor%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20hideFromPalette%3A%20compatibilityMode%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20extensions%3A%20%5B%22colours_looks%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20menus%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20These%20all%20need%20acceptReporters%3A%20false%20for%20parity%20with%20the%20Scratch%20Labs%20version.%0A%20%20%20%20%20%20%20%20%20%20animate%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22type%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22rainbow%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22rainbow%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22zoom%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22zoom%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20font%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%22getFonts%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20align%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22left%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22left%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22center%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22center%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22right%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22right%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20attribute%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22font%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22color%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22width%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22outline%20color%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22outline%20width%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22alignment%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%2F%2F%20TurboWarp%20menus%20(acceptReporters%3A%20true)%0A%20%20%20%20%20%20%20%20%20%20twAnimate%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22type%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22rainbow%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22rainbow%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22zoom%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22zoom%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22shake%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20twAnimateDuration%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22rainbow%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22rainbow%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22zoom%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22zoom%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22shake%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20twAlign%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22left%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22left%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22center%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22center%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22right%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22right%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20twFont%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%22getFonts%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20twWordWrap%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22with%20word%20wrap%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22with%20word%20wrap%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22without%20word%20wrap%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22without%20word%20wrap%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getFonts()%20%7B%0A%20%20%20%20%20%20const%20customFonts%20%3D%20this._getFontsMap()%3B%0A%20%20%20%20%20%20return%20%5B%0A%20%20%20%20%20%20%20%20...FONTS%2C%0A%20%20%20%20%20%20%20%20...customFonts%2C%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22random%20font%22)%2C%0A%20%20%20%20%20%20%20%20%20%20value%3A%20%22Random%22%2C%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%5D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20_getFontsMap()%20%7B%0A%20%20%20%20%20%20return%20Scratch.vm.runtime.fontManager%0A%20%20%20%20%20%20%20%20%3F%20Scratch.vm.runtime.fontManager.getFonts().map((i)%20%3D%3E%20(%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20i.name%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20i.family%2C%0A%20%20%20%20%20%20%20%20%20%20%7D))%0A%20%20%20%20%20%20%20%20%3A%20%5B%5D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F**%0A%20%20%20%20%20*%20%40param%20%7BVM.Target%7D%20target%0A%20%20%20%20%20*%20%40returns%20%7BTextState%7D%0A%20%20%20%20%20*%2F%0A%20%20%20%20_getState(target)%20%7B%0A%20%20%20%20%20%20const%20state%20%3D%20target%5BCUSTOM_STATE_KEY%5D%3B%0A%20%20%20%20%20%20if%20(!state)%20%7B%0A%20%20%20%20%20%20%20%20%2F**%20%40type%20%7BTextState%7D%20*%2F%0A%20%20%20%20%20%20%20%20const%20newState%20%3D%20%7B%0A%20%20%20%20%20%20%20%20%20%20skin%3A%20createTextCostumeSkin(target)%2C%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20target%5BCUSTOM_STATE_KEY%5D%20%3D%20newState%3B%0A%20%20%20%20%20%20%20%20return%20newState%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20return%20state%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F**%0A%20%20%20%20%20*%20%40param%20%7BVM.Target%7D%20target%0A%20%20%20%20%20*%20%40returns%20%7Bboolean%7D%0A%20%20%20%20%20*%2F%0A%20%20%20%20_hasState(target)%20%7B%0A%20%20%20%20%20%20return%20!!target%5BCUSTOM_STATE_KEY%5D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20_hideAllText()%20%7B%0A%20%20%20%20%20%20for%20(const%20target%20of%20vm.runtime.targets)%20%7B%0A%20%20%20%20%20%20%20%20if%20(this._hasState(target))%20%7B%0A%20%20%20%20%20%20%20%20%20%20this._hideText(target%2C%20this._getState(target))%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F**%0A%20%20%20%20%20*%20%40param%20%7BVM.Target%7D%20target%0A%20%20%20%20%20*%20%40param%20%7BTextState%7D%20state%0A%20%20%20%20%20*%2F%0A%20%20%20%20_renderText(target%2C%20state)%20%7B%0A%20%20%20%20%20%20state.skin.cancelAnimation()%3B%0A%20%20%20%20%20%20renderer.updateDrawableSkinId(target.drawableID%2C%20state.skin.id)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F**%0A%20%20%20%20%20*%20%40param%20%7BVM.Target%7D%20target%0A%20%20%20%20%20*%20%40param%20%7BTextState%7D%20state%0A%20%20%20%20%20*%2F%0A%20%20%20%20_hideText(target%2C%20state)%20%7B%0A%20%20%20%20%20%20state.skin.cancelAnimation()%3B%0A%20%20%20%20%20%20target.setCostume(target.currentCostume)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setText(%7B%20TEXT%20%7D%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20this._renderText(util.target%2C%20state)%3B%0A%20%20%20%20%20%20state.skin.setText(Scratch.Cast.toString(TEXT))%3B%0A%20%20%20%20%20%20%2F%2F%20Scratch%20forces%201%20frame%20delay%20by%20returning%20promise.%20I%20think%20that's%20silly.%0A%20%20%20%20%20%20util.runtime.requestRedraw()%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20animateText(%7B%20ANIMATE%2C%20TEXT%20%7D%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20this._renderText(util.target%2C%20state)%3B%0A%0A%20%20%20%20%20%20state.skin.setText(Scratch.Cast.toString(TEXT))%3B%0A%20%20%20%20%20%20state.skin.cancelAnimation()%3B%0A%0A%20%20%20%20%20%20if%20(ANIMATE%20%3D%3D%3D%20%22type%22)%20%7B%0A%20%20%20%20%20%20%20%20return%20state.skin.startTypeAnimation()%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(ANIMATE%20%3D%3D%3D%20%22rainbow%22)%20%7B%0A%20%20%20%20%20%20%20%20return%20state.skin.startRainbowAnimation()%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(ANIMATE%20%3D%3D%3D%20%22zoom%22)%20%7B%0A%20%20%20%20%20%20%20%20return%20state.skin.startZoomAnimation()%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(ANIMATE%20%3D%3D%3D%20%22shake%22)%20%7B%0A%20%20%20%20%20%20%20%20return%20state.skin.startShakeAnimation()%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20Scratch%20does%20nothing%20here%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20clearText(args%2C%20util)%20%7B%0A%20%20%20%20%20%20if%20(this._hasState(util.target))%20%7B%0A%20%20%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20%20%20this._hideText(util.target%2C%20state)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%2F%2F%20Scratch%20forces%201%20frame%20delay%20by%20returning%20promise.%20I%20think%20that's%20silly.%0A%20%20%20%20%20%20util.runtime.requestRedraw()%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setFont(%7B%20FONT%20%7D%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20font%20%3D%20Scratch.Cast.toString(FONT)%3B%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%0A%20%20%20%20%20%20if%20(font%20%3D%3D%3D%20%22Random%22)%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20Random%20font%20always%20switches%20to%20a%20new%20font%2C%20never%20the%20same%20one%0A%20%20%20%20%20%20%20%20const%20possibleFonts%20%3D%20%5B%0A%20%20%20%20%20%20%20%20%20%20...FONTS%2C%0A%20%20%20%20%20%20%20%20%20%20...this._getFontsMap().map((i)%20%3D%3E%20i.value)%2C%0A%20%20%20%20%20%20%20%20%5D.filter((i)%20%3D%3E%20i%20!%3D%3D%20state.skin.fontFamily)%3B%0A%20%20%20%20%20%20%20%20state.skin.setFontFamily(%0A%20%20%20%20%20%20%20%20%20%20possibleFonts%5BMath.floor(Math.random()%20*%20possibleFonts.length)%5D%0A%20%20%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20state.skin.setFontFamily(font)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20setColor(%7B%20COLOR%20%7D%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20state.skin.setColor(Scratch.Cast.toString(COLOR))%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setWidth(%7B%20WIDTH%2C%20ALIGN%20%7D%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%0A%20%20%20%20%20%20if%20(ALIGN%20%3D%3D%3D%20%22center%22)%20%7B%0A%20%20%20%20%20%20%20%20state.skin.setAlign(ALIGN_CENTER)%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(ALIGN%20%3D%3D%3D%20%22right%22)%20%7B%0A%20%20%20%20%20%20%20%20state.skin.setAlign(ALIGN_RIGHT)%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20Scratch%20treats%20unknown%20values%20as%20left%20alignment.%0A%20%20%20%20%20%20%20%20state.skin.setAlign(ALIGN_LEFT)%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20state.skin.setWidth(Scratch.Cast.toNumber(WIDTH))%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20%2F*%0A%20%20%20%20%20*%20Extra%20blocks%2C%20not%20compatible%20with%20Scratch%3A%0A%20%20%20%20%20*%2F%0A%0A%20%20%20%20disableCompatibilityMode()%20%7B%0A%20%20%20%20%20%20const%20popup%20%3D%20Scratch.translate(%7B%0A%20%20%20%20%20%20%20%20id%3A%20%22disableCompatibilityMode%22%2C%0A%20%20%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%20%20%22This%20will%20enable%20new%20blocks%20and%20features%20that%20WILL%20NOT%20WORK%20in%20the%20official%20Scratch%20Lab.%5Cn%5CnDo%20you%20wish%20to%20continue%3F%22%2C%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%20%20%20%20if%20(confirm(popup))%20%7B%0A%20%20%20%20%20%20%20%20compatibilityMode%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20Scratch.vm.extensionManager.refreshBlocks()%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20setOutlineWidth(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20const%20width%20%3D%20Scratch.Cast.toNumber(args.WIDTH)%3B%0A%0A%20%20%20%20%20%20state.skin.setOutlineWidth(width)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setOutlineColor(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20const%20color%20%3D%20Scratch.Cast.toString(args.COLOR)%3B%0A%0A%20%20%20%20%20%20state.skin.setOutlineColor(color)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20addLine(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20this._renderText(util.target%2C%20state)%3B%0A%0A%20%20%20%20%20%20const%20originalText%20%3D%20state.skin.text%3B%0A%20%20%20%20%20%20const%20addingText%20%3D%20Scratch.Cast.toString(args.TEXT)%3B%0A%20%20%20%20%20%20state.skin.setText(%0A%20%20%20%20%20%20%20%20originalText%20%3F%20%60%24%7BoriginalText%7D%5Cn%24%7BaddingText%7D%60%20%3A%20addingText%0A%20%20%20%20%20%20)%3B%0A%20%20%20%20%20%20util.runtime.requestRedraw()%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getLines(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20drawableID%20%3D%20util.target.drawableID%3B%0A%20%20%20%20%20%20const%20skin%20%3D%20renderer._allDrawables%5BdrawableID%5D.skin%3B%0A%20%20%20%20%20%20if%20(!(skin%20instanceof%20TextCostumeSkin))%20return%200%3B%0A%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20const%20text%20%3D%20state.skin.text%3B%0A%20%20%20%20%20%20return%20text.split(%22%5Cn%22).length%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getLinesV2(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20drawableID%20%3D%20util.target.drawableID%3B%0A%20%20%20%20%20%20const%20skin%20%3D%20renderer._allDrawables%5BdrawableID%5D.skin%3B%0A%20%20%20%20%20%20if%20(!(skin%20instanceof%20TextCostumeSkin))%20return%200%3B%0A%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20if%20(Scratch.Cast.toString(args.WITH_WORD_WRAP)%20%3D%3D%3D%20%22with%20word%20wrap%22)%20%7B%0A%20%20%20%20%20%20%20%20if%20(state.skin._needsReflow())%20%7B%0A%20%20%20%20%20%20%20%20%20%20state.skin._reflowText()%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20return%20state.skin.lines.length%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20return%20state.skin.text.split(%22%5Cn%22).length%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setAlignment(args%2C%20util)%20%7B%0A%20%20%20%20%20%20%2F%2F%20see%20setWidth%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20if%20(args.ALIGN%20%3D%3D%3D%20%22center%22)%20%7B%0A%20%20%20%20%20%20%20%20state.skin.setAlign(ALIGN_CENTER)%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(args.ALIGN%20%3D%3D%3D%20%22right%22)%20%7B%0A%20%20%20%20%20%20%20%20state.skin.setAlign(ALIGN_RIGHT)%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20state.skin.setAlign(ALIGN_LEFT)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20setWidthValue(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20state.skin.setWidth(Scratch.Cast.toNumber(args.WIDTH))%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20resetWidth(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20state.skin.setWidth(vm.runtime.stageWidth)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20startAnimate(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20drawableID%20%3D%20util.target.drawableID%3B%0A%20%20%20%20%20%20const%20skin%20%3D%20renderer._allDrawables%5BdrawableID%5D.skin%3B%0A%20%20%20%20%20%20if%20(!(skin%20instanceof%20TextCostumeSkin))%20return%3B%0A%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20state.skin.cancelAnimation()%3B%0A%0A%20%20%20%20%20%20%2F%2F%20Don't%20return%20the%20promise%0A%20%20%20%20%20%20if%20(args.ANIMATE%20%3D%3D%20%22type%22)%20%7B%0A%20%20%20%20%20%20%20%20state.skin.startTypeAnimation()%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(args.ANIMATE%20%3D%3D%20%22rainbow%22)%20%7B%0A%20%20%20%20%20%20%20%20state.skin.startRainbowAnimation()%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(args.ANIMATE%20%3D%3D%20%22zoom%22)%20%7B%0A%20%20%20%20%20%20%20%20state.skin.startZoomAnimation()%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(args.ANIMATE%20%3D%3D%20%22shake%22)%20%7B%0A%20%20%20%20%20%20%20%20state.skin.startShakeAnimation()%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20Scratch%20does%20nothing%20here%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20animateUntilDone(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20drawableID%20%3D%20util.target.drawableID%3B%0A%20%20%20%20%20%20const%20skin%20%3D%20renderer._allDrawables%5BdrawableID%5D.skin%3B%0A%20%20%20%20%20%20if%20(!(skin%20instanceof%20TextCostumeSkin))%20return%3B%0A%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20state.skin.cancelAnimation()%3B%0A%0A%20%20%20%20%20%20if%20(args.ANIMATE%20%3D%3D%20%22type%22)%20%7B%0A%20%20%20%20%20%20%20%20return%20state.skin.startTypeAnimation()%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(args.ANIMATE%20%3D%3D%20%22rainbow%22)%20%7B%0A%20%20%20%20%20%20%20%20return%20state.skin.startRainbowAnimation()%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(args.ANIMATE%20%3D%3D%20%22zoom%22)%20%7B%0A%20%20%20%20%20%20%20%20return%20state.skin.startZoomAnimation()%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(args.ANIMATE%20%3D%3D%20%22shake%22)%20%7B%0A%20%20%20%20%20%20%20%20return%20state.skin.startShakeAnimation()%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20Scratch%20does%20nothing%20here%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20isAnimating(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20skin%20%3D%20this._getState(util.target).skin%3B%0A%20%20%20%20%20%20return%20(%0A%20%20%20%20%20%20%20%20skin.isTyping%20%7C%7C%20skin.isRainbow%20%7C%7C%20skin.isZooming%20%7C%7C%20skin.isShaking%0A%20%20%20%20%20%20)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setAnimateDuration(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20const%20animation%20%3D%20args.ANIMATE%3B%0A%20%20%20%20%20%20const%20milliseconds%20%3D%20Scratch.Cast.toNumber(args.NUM)%20*%201000%3B%0A%20%20%20%20%20%20if%20(animation%20%3D%3D%3D%20%22rainbow%22)%20%7B%0A%20%20%20%20%20%20%20%20state.skin.setRainbowDuration(milliseconds)%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(animation%20%3D%3D%3D%20%22zoom%22)%20%7B%0A%20%20%20%20%20%20%20%20state.skin.setZoomDuration(milliseconds)%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(animation%20%3D%3D%3D%20%22shake%22)%20%7B%0A%20%20%20%20%20%20%20%20state.skin.setShakeDuration(milliseconds)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20resetAnimateDuration(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20const%20animation%20%3D%20args.ANIMATE%3B%0A%20%20%20%20%20%20if%20(animation%20%3D%3D%3D%20%22rainbow%22)%20%7B%0A%20%20%20%20%20%20%20%20state.skin.setRainbowDuration(DEFAULT_RAINBOW_DURATION)%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(animation%20%3D%3D%3D%20%22zoom%22)%20%7B%0A%20%20%20%20%20%20%20%20state.skin.setZoomDuration(DEFAULT_ZOOM_DURATION)%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(animation%20%3D%3D%3D%20%22shake%22)%20%7B%0A%20%20%20%20%20%20%20%20state.skin.setShakeDuration(DEFAULT_SHAKE_DURATION)%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20getAnimateDuration(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20const%20animation%20%3D%20args.ANIMATE%3B%0A%20%20%20%20%20%20if%20(animation%20%3D%3D%3D%20%22rainbow%22)%20%7B%0A%20%20%20%20%20%20%20%20return%20state.skin.rainbowDuration%20%2F%201000%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(animation%20%3D%3D%3D%20%22zoom%22)%20%7B%0A%20%20%20%20%20%20%20%20return%20state.skin.zoomDuration%20%2F%201000%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(animation%20%3D%3D%3D%20%22shake%22)%20%7B%0A%20%20%20%20%20%20%20%20return%20state.skin.shakeDuration%20%2F%201000%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20should%20never%20happen%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20setShakeIntensity(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20state.skin.setShakeIntensity(Scratch.Cast.toNumber(args.NUM))%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20setTypeDelay(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20state.skin.setTypeDelay(Scratch.Cast.toNumber(args.NUM)%20*%201000)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20resetTypeDelay(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20state.skin.setTypeDelay(DEFAULT_TYPE_DELAY)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getTypeDelay(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20%2F%2F%20TODO%3A%20Should%20we%20round%20this%3F%0A%20%20%20%20%20%20return%20state.skin.typeDelay%20%2F%201000%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20textActive(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20drawableID%20%3D%20util.target.drawableID%3B%0A%20%20%20%20%20%20const%20skin%20%3D%20renderer._allDrawables%5BdrawableID%5D.skin%3B%0A%20%20%20%20%20%20return%20skin%20instanceof%20TextCostumeSkin%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getDisplayedText(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20return%20state.skin.text%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20getTextAttribute(args%2C%20util)%20%7B%0A%20%20%20%20%20%20const%20state%20%3D%20this._getState(util.target)%3B%0A%20%20%20%20%20%20const%20attrib%20%3D%20args.ATTRIBUTE%3B%0A%20%20%20%20%20%20if%20(attrib%20%3D%3D%3D%20%22font%22)%20%7B%0A%20%20%20%20%20%20%20%20return%20state.skin.getFontFamily()%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(attrib%20%3D%3D%3D%20%22color%22)%20%7B%0A%20%20%20%20%20%20%20%20return%20state.skin.getColor()%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(attrib%20%3D%3D%3D%20%22width%22)%20%7B%0A%20%20%20%20%20%20%20%20return%20state.skin.getWidth()%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(attrib%20%3D%3D%3D%20%22outline%20color%22)%20%7B%0A%20%20%20%20%20%20%20%20return%20state.skin.getOutlineColor()%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(attrib%20%3D%3D%3D%20%22outline%20width%22)%20%7B%0A%20%20%20%20%20%20%20%20return%20state.skin.getOutlineWidth()%3B%0A%20%20%20%20%20%20%7D%20else%20if%20(attrib%20%3D%3D%3D%20%22alignment%22)%20%7B%0A%20%20%20%20%20%20%20%20switch%20(state.skin.getAlign())%20%7B%0A%20%20%20%20%20%20%20%20%20%20case%20ALIGN_LEFT%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%22left%22%3B%0A%20%20%20%20%20%20%20%20%20%20case%20ALIGN_RIGHT%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%22right%22%3B%0A%20%20%20%20%20%20%20%20%20%20case%20ALIGN_CENTER%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%22center%22%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%2F%2F%20should%20never%20happen%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20Scratch.extensions.register(new%20AnimatedText())%3B%0A%7D)(Scratch)%3B%0A%20%7D)(Scratch)%3B","data:text/javascript;,(function(Scratch)%20%7B%20%2F%2F%20Name%3A%20Network%0A%2F%2F%20ID%3A%20truefantomnetwork%0A%2F%2F%20Description%3A%20Various%20blocks%20for%20interacting%20with%20the%20network.%0A%2F%2F%20By%3A%20TrueFantom%20%3Chttps%3A%2F%2Fscratch.mit.edu%2Fusers%2FTrueFantom%2F%3E%0A%2F%2F%20License%3A%20MIT%0A%0A%2F*%20generated%20l10n%20code%20*%2FScratch.translate.setup(%7B%22de%22%3A%7B%22_Network%22%3A%22Netzwerk%22%7D%2C%22fi%22%3A%7B%22_(1)%20text%22%3A%22(1)%20teksti%22%2C%22_(3)%20status%20ok%3F%22%3A%22(3)%20onko%20tila%20ok%3F%22%2C%22_(4)%20status%22%3A%22(4)%20tila%22%2C%22_(5%201)%20status%20text%20and%20text%22%3A%22(5%201)%20tilateksti%20ja%20teksti%22%2C%22_(5)%20status%20text%22%3A%22(5)%20tilateksti%22%2C%22_(6%204)%20type%20and%20status%22%3A%22(6%204)%20tyyppi%20ja%20tila%22%2C%22_(6)%20type%22%3A%22(6)%20tyyppi%22%2C%22_(7)%20redirected%3F%22%3A%22(7)%20onko%20uudelleenohjattu%3F%22%2C%22_(9)%20body%20used%3F%22%3A%22(9)%20onko%20runkoa%20k%C3%A4ytetty%3F%22%2C%22_Network%22%3A%22Verkko%22%2C%22_apple%22%3A%22omena%22%2C%22_browser%22%3A%22selain%22%2C%22_connected%20to%20internet%3F%22%3A%22onko%20yhteydess%C3%A4%20internetiin%3F%22%2C%22_current%20url%22%3A%22nykyinen%20url-osoite%22%2C%22_default%22%3A%22oletus%22%2C%22_delete%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22tee%20delete-pyynt%C3%B6%20sivustoon%20%5BUSER_URL%5D%20ja%20ilmoita%20vastauksen%20%5BRESPONSES_TYPES%5D%20jaettuna%20merkill%C3%A4%20%5BSPLIT%5D%22%2C%22_downlink%20max%20speed%20in%20mb%2Fs%22%3A%22enimm%C3%A4isvastaanottovauhti%20megabittein%C3%A4%20sekunnissa%22%2C%22_downlink%20speed%20in%20mb%2Fs%22%3A%22vastaanottonopeus%20megabittein%C3%A4%20sekunnissa%22%2C%22_get%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22tee%20get-pyynt%C3%B6%20sivustoon%20%5BUSER_URL%5D%20ja%20ilmoita%20vastauksen%20%5BRESPONSES_TYPES%5D%20jaettuna%20merkill%C3%A4%20%5BSPLIT%5D%22%2C%22_network%20generation%22%3A%22verkon%20sukupolvi%22%2C%22_network%20type%22%3A%22verkon%20tyyppi%22%2C%22_open%20%5BUSER_URL%5D%20in%20new%20tab%22%3A%22avaa%20%5BUSER_URL%5D%20uudessa%20v%C3%A4lilehdess%C3%A4%22%2C%22_open%20%5BUSER_URL%5D%20in%20new%20window%20with%20width%3A%20%5BWIDTH%5D%20height%3A%20%5BHEIGHT%5D%20left%3A%20%5BLEFT%5D%20top%3A%20%5BTOP%5D%22%3A%22avaa%20%5BUSER_URL%5D%20uudessa%20ikkunassa%3A%20leveys%20%5BWIDTH%5D%20korkeus%3A%20%5BHEIGHT%5D%20vasen%20sijainti%3A%20%5BLEFT%5D%20yl%C3%A4sijainti%3A%20%5BTOP%5D%22%2C%22_patch%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22tee%20patch-pyynt%C3%B6%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20sivustoon%20%5BUSER_URL%5D%20ja%20ilmoita%20vastauksen%20%5BRESPONSES_TYPES%5D%20jaettuna%20merkill%C3%A4%20%5BSPLIT%5D%22%2C%22_post%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22tee%20post-pyynt%C3%B6%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20sivustoon%20%5BUSER_URL%5D%20ja%20ilmoita%20vastauksen%20%5BRESPONSES_TYPES%5D%20jaettuna%20merkill%C3%A4%20%5BSPLIT%5D%22%2C%22_put%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22tee%20put-pyynt%C3%B6%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20sivustoon%20%5BUSER_URL%5D%20ja%20ilmoita%20vastauksen%20%5BRESPONSES_TYPES%5D%20jaettuna%20merkill%C3%A4%20%5BSPLIT%5D%22%2C%22_redirect%20this%20tab%20to%20%5BUSER_URL%5D%22%3A%22siirry%20osoitteeseen%20%5BUSER_URL%5D%20t%C3%A4ll%C3%A4%20v%C3%A4lilehdell%C3%A4%22%2C%22_rtt%20in%20ms%22%3A%22viive%20millisekunteina%22%7D%2C%22it%22%3A%7B%22_Network%22%3A%22Rete%22%2C%22_apple%22%3A%22mela%22%7D%2C%22ja%22%3A%7B%22_(1)%20text%22%3A%22(1)%20%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%22%2C%22_(3)%20status%20ok%3F%22%3A%22(3)%20%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9OK%22%2C%22_(4)%20status%22%3A%22(4)%20%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%22%2C%22_(5%201)%20status%20text%20and%20text%22%3A%22(5%201)%20%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%81%A8%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%22%2C%22_(5)%20status%20text%22%3A%22(5)%20%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%22%2C%22_(6%204)%20type%20and%20status%22%3A%22(6%204)%20%E3%82%BF%E3%82%A4%E3%83%97%E3%81%A8%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%22%2C%22_(6)%20type%22%3A%22(6)%20%E3%82%BF%E3%82%A4%E3%83%97%22%2C%22_(7)%20redirected%3F%22%3A%22(7)%20%E3%83%AA%E3%83%80%E3%82%A4%E3%83%AC%E3%82%AF%E3%83%88%E3%81%95%E3%82%8C%E3%81%9F%22%2C%22_(9)%20body%20used%3F%22%3A%22(9)%20body%E3%81%8C%E4%BD%BF%E3%82%8F%E3%82%8C%E3%81%9F%22%2C%22_Network%22%3A%22%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%22%2C%22_apple%22%3A%22%E3%82%8A%E3%82%93%E3%81%94%22%2C%22_browser%22%3A%22%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%22%2C%22_connected%20to%20internet%3F%22%3A%22%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%81%AB%E6%8E%A5%E7%B6%9A%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%22%2C%22_current%20url%22%3A%22%E7%8F%BE%E5%9C%A8%E3%81%AEURL%22%2C%22_default%22%3A%22%E9%BB%99%E8%AA%8D%22%2C%22_downlink%20max%20speed%20in%20mb%2Fs%22%3A%22%E6%9C%80%E5%A4%A7%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AA%E3%83%B3%E3%82%AF%E9%80%9F%E5%BA%A6%E3%82%92MB%2Fs%E3%81%A7%E8%A1%A8%E3%81%99%22%2C%22_downlink%20speed%20in%20mb%2Fs%22%3A%22%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AA%E3%83%B3%E3%82%AF%E9%80%9F%E5%BA%A6%E3%82%92MB%2Fs%E3%81%A7%E8%A1%A8%E3%81%99%22%2C%22_network%20generation%22%3A%22%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AE%E4%B8%96%E4%BB%A3%22%2C%22_network%20type%22%3A%22%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%BF%E3%82%A4%E3%83%97%22%2C%22_open%20%5BUSER_URL%5D%20in%20new%20tab%22%3A%22%5BUSER_URL%5D%E3%82%92%E6%96%B0%E3%81%97%E3%81%84%E3%82%BF%E3%83%96%E3%81%A7%E9%96%8B%E3%81%8F%22%2C%22_open%20%5BUSER_URL%5D%20in%20new%20window%20with%20width%3A%20%5BWIDTH%5D%20height%3A%20%5BHEIGHT%5D%20left%3A%20%5BLEFT%5D%20top%3A%20%5BTOP%5D%22%3A%22%5BUSER_URL%5D%E3%82%92%E6%96%B0%E3%81%97%E3%81%84%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E3%81%A7%E5%B9%85%5BWIDTH%5D%E9%AB%98%E3%81%95%5BHEIGHT%5D%E5%B7%A6%5BLEFT%5D%E3%83%88%E3%83%83%E3%83%97%5BTOP%5D%E3%81%A7%E9%96%8B%E3%81%8F%22%2C%22_redirect%20this%20tab%20to%20%5BUSER_URL%5D%22%3A%22%E3%81%93%E3%81%AE%E3%82%BF%E3%83%96%E3%82%92%5BUSER_URL%5D%E3%81%AB%E3%83%AA%E3%83%80%E3%82%A4%E3%83%AC%E3%82%AF%E3%83%88%E3%81%99%E3%82%8B%22%2C%22_rtt%20in%20ms%22%3A%22%E3%83%A9%E3%82%A6%E3%83%B3%E3%83%89%E3%83%88%E3%83%AA%E3%83%83%E3%83%97%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%92%E3%83%9F%E3%83%AA%E7%A7%92%E3%81%A7%E8%A1%A8%E3%81%99%22%7D%2C%22ko%22%3A%7B%22_(1)%20text%22%3A%22(1)%20%ED%85%8D%EC%8A%A4%ED%8A%B8%22%2C%22_(3)%20status%20ok%3F%22%3A%22(3)%20%EC%83%81%ED%83%9C%EA%B0%80%20ok%EC%9D%B8%EC%A7%80%20%EC%97%AC%EB%B6%80%22%2C%22_(4)%20status%22%3A%22(4)%20%EC%83%81%ED%83%9C%20%EC%BD%94%EB%93%9C%22%2C%22_(5%201)%20status%20text%20and%20text%22%3A%22(5%201)%20%EC%83%81%ED%83%9C%20%EB%A9%94%EC%8B%9C%EC%A7%80%20%EB%B0%8F%20%ED%85%8D%EC%8A%A4%ED%8A%B8%22%2C%22_(5)%20status%20text%22%3A%22(5)%20%EC%83%81%ED%83%9C%20%EB%A9%94%EC%8B%9C%EC%A7%80%22%2C%22_(7)%20redirected%3F%22%3A%22(7)%20%EB%A6%AC%EB%8B%A4%EC%9D%B4%EB%A0%89%ED%8A%B8%20%EC%97%AC%EB%B6%80%22%2C%22_(9)%20body%20used%3F%22%3A%22(9)%20body%20%EC%82%AC%EC%9A%A9%20%EC%97%AC%EB%B6%80%22%2C%22_Network%22%3A%22%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%22%2C%22_browser%22%3A%22%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80%22%2C%22_connected%20to%20internet%3F%22%3A%22%EC%9D%B8%ED%84%B0%EB%84%B7%EC%97%90%20%EC%97%B0%EA%B2%B0%EB%90%98%EC%97%88%EB%8A%94%EA%B0%80%3F%22%2C%22_current%20url%22%3A%22%ED%98%84%EC%9E%AC%20URL%22%2C%22_default%22%3A%22%EA%B8%B0%EB%B3%B8%22%2C%22_network%20generation%22%3A%22%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%20%EC%84%B8%EB%8C%80%22%7D%2C%22nb%22%3A%7B%22_Network%22%3A%22Nettverk%22%2C%22_browser%22%3A%22nettleser%22%7D%2C%22nl%22%3A%7B%22_Network%22%3A%22Netwerk%22%2C%22_apple%22%3A%22appel%22%2C%22_default%22%3A%22standaard%22%7D%2C%22pl%22%3A%7B%22_browser%22%3A%22przegl%C4%85darka%22%7D%2C%22ru%22%3A%7B%22_(1)%20text%22%3A%22(1)%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%22%2C%22_(3)%20status%20ok%3F%22%3A%22(3)%20%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%20%D0%BE%D0%BA%3F%22%2C%22_(4)%20status%22%3A%22(4)%20%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%22%2C%22_(5%201)%20status%20text%20and%20text%22%3A%22(5%201)%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%20%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%B0%20%D0%B8%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%22%2C%22_(5)%20status%20text%22%3A%22(5)%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%20%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%B0%22%2C%22_(6%204)%20type%20and%20status%22%3A%22(6%204)%20%D1%82%D0%B8%D0%BF%20%D0%B8%20%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%22%2C%22_(6)%20type%22%3A%22(6)%20%D1%82%D0%B8%D0%BF%22%2C%22_(7)%20redirected%3F%22%3A%22(7)%20%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%B0%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%3F%22%2C%22_(9)%20body%20used%3F%22%3A%22(9)%20%D1%82%D0%B5%D0%BB%D0%BE%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%3F%22%2C%22_Network%22%3A%22%D0%A1%D0%B5%D1%82%D1%8C%22%2C%22_apple%22%3A%22%D1%8F%D0%B1%D0%BB%D0%BE%D0%BA%D0%BE%22%2C%22_browser%22%3A%22%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80%22%2C%22_connected%20to%20internet%3F%22%3A%22%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D1%91%D0%BD%20%D0%BA%20%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82%D1%83%3F%22%2C%22_current%20url%22%3A%22%D1%82%D0%B5%D0%BA%D1%83%D1%89%D0%B5%D0%B5%20url%22%2C%22_default%22%3A%22%D0%BF%D0%BE%20%D1%83%D0%BC%D0%BE%D0%BB%D1%87%D0%B0%D0%BD%D0%B8%D1%8E%22%2C%22_delete%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C%20%5BUSER_URL%5D%20%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%5BRESPONSES_TYPES%5D%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D1%8B%D0%B9%20%D0%BD%D0%B0%20%5BSPLIT%5D%22%2C%22_downlink%20max%20speed%20in%20mb%2Fs%22%3A%22%D0%BC%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%20%D1%81%D0%BA%D0%BE%D1%80%D0%BE%D1%81%D1%82%D1%8C%20%D0%BD%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D1%8F%D1%89%D0%B5%D0%B3%D0%BE%20%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB%D0%B0%20%D0%B2%20%D0%BC%D0%B1%2F%D1%81%22%2C%22_downlink%20speed%20in%20mb%2Fs%22%3A%22%D1%81%D0%BA%D0%BE%D1%80%D0%BE%D1%81%D1%82%D1%8C%20%D0%BD%D0%B8%D1%81%D1%85%D0%BE%D0%B4%D1%8F%D1%89%D0%B5%D0%B3%D0%BE%20%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB%D0%B0%20%D0%B2%20%D0%BC%D0%B1%2F%D1%81%22%2C%22_get%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D1%8C%20%5BUSER_URL%5D%20%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%5BRESPONSES_TYPES%5D%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D1%8B%D0%B9%20%D0%BD%D0%B0%20%5BSPLIT%5D%22%2C%22_network%20generation%22%3A%22%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F%20%D1%81%D0%B5%D1%82%D0%B8%22%2C%22_network%20type%22%3A%22%D1%82%D0%B8%D0%BF%20%D1%81%D0%B5%D1%82%D0%B8%22%2C%22_open%20%5BUSER_URL%5D%20in%20new%20tab%22%3A%22%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8C%20%5BUSER_URL%5D%20%D0%B2%20%D0%BD%D0%BE%D0%B2%D0%BE%D0%B9%20%D0%B2%D0%BA%D0%BB%D0%B0%D0%B4%D0%BA%D0%B5%22%2C%22_open%20%5BUSER_URL%5D%20in%20new%20window%20with%20width%3A%20%5BWIDTH%5D%20height%3A%20%5BHEIGHT%5D%20left%3A%20%5BLEFT%5D%20top%3A%20%5BTOP%5D%22%3A%22%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8C%20%5BUSER_URL%5D%20%D0%B2%20%D0%BD%D0%BE%D0%B2%D0%BE%D0%B9%20%D0%B2%D0%BA%D0%BB%D0%B0%D0%B4%D0%BA%D0%B5%20%D1%81%20%D1%88%D0%B8%D1%80%D0%B8%D0%BD%D0%BE%D0%B9%3A%20%5BWIDTH%5D%20%D0%B2%D1%8B%D1%81%D0%BE%D1%82%D0%BE%D0%B9%3A%20%5BHEIGHT%5D%20%D0%BB%D0%B5%D0%B2%D0%BE%3A%20%5BLEFT%5D%20%D0%B2%D0%B5%D1%80%D1%85%3A%20%5BTOP%5D%20%22%2C%22_patch%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22%D0%B8%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20%D0%BD%D0%B0%20%5BUSER_URL%5D%20%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%5BRESPONSES_TYPES%5D%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D1%8B%D0%B9%20%D0%BD%D0%B0%20%5BSPLIT%5D%22%2C%22_post%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81%D0%B8%D1%82%D1%8C%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20%D0%BD%D0%B0%20%5BUSER_URL%5D%20%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%5BRESPONSES_TYPES%5D%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D1%8B%D0%B9%20%D0%BD%D0%B0%20%5BSPLIT%5D%22%2C%22_put%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22%D0%B2%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20%D0%BD%D0%B0%20%5BUSER_URL%5D%20%D0%BE%D1%82%D0%B2%D0%B5%D1%82%20%5BRESPONSES_TYPES%5D%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D1%8B%D0%B9%20%D0%BD%D0%B0%20%5BSPLIT%5D%22%2C%22_redirect%20this%20tab%20to%20%5BUSER_URL%5D%22%3A%22%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%B0%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20%D1%8D%D1%82%D1%83%20%D0%B2%D0%BA%D0%BB%D0%B0%D0%B4%D0%BA%D1%83%20%D0%BD%D0%B0%20%5BUSER_URL%5D%22%2C%22_rtt%20in%20ms%22%3A%22rtt%20%D0%B2%20%D0%BC%D1%81%22%7D%2C%22uk%22%3A%7B%22_browser%22%3A%22%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80%22%7D%2C%22zh-cn%22%3A%7B%22_(1)%20text%22%3A%22(1)%20%E6%96%87%E6%9C%AC%22%2C%22_(3)%20status%20ok%3F%22%3A%22(3)%20%E7%8A%B6%E6%80%81%20ok%3F%22%2C%22_(4)%20status%22%3A%22(4)%20%E7%8A%B6%E6%80%81%22%2C%22_(5%201)%20status%20text%20and%20text%22%3A%22(5%201)%20%E7%8A%B6%E6%80%81%E6%96%87%E6%9C%AC%E5%92%8C%E6%96%87%E6%9C%AC%22%2C%22_(5)%20status%20text%22%3A%22(5)%20%E7%8A%B6%E6%80%81%E6%96%87%E6%9C%AC%22%2C%22_(6%204)%20type%20and%20status%22%3A%22(6%204)%20%E7%B1%BB%E5%9E%8B%E5%92%8C%E7%8A%B6%E6%80%81%22%2C%22_(6)%20type%22%3A%22(6)%20%E7%B1%BB%E5%9E%8B%22%2C%22_(7)%20redirected%3F%22%3A%22(7)%20%E5%B7%B2%E9%87%8D%E5%AE%9A%E5%90%91%EF%BC%9F%22%2C%22_(9)%20body%20used%3F%22%3A%22(9)%20%E8%AF%B7%E6%B1%82%E4%BD%93%E5%B7%B2%E4%BD%BF%E7%94%A8%EF%BC%9F%22%2C%22_Network%22%3A%22%E7%BD%91%E7%BB%9C%22%2C%22_apple%22%3A%22%E8%8B%B9%E6%9E%9C%22%2C%22_browser%22%3A%22%E6%B5%8F%E8%A7%88%E5%99%A8%E5%90%8D%E7%A7%B0%22%2C%22_connected%20to%20internet%3F%22%3A%22%E5%B7%B2%E8%81%94%E7%BD%91%EF%BC%9F%22%2C%22_current%20url%22%3A%22%E5%BD%93%E5%89%8Durl%22%2C%22_default%22%3A%22%E9%BB%98%E8%AE%A4%E7%B1%BB%E5%9E%8B%22%2C%22_delete%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22%E5%88%A0%E9%99%A4%5BUSER_URL%5D%E7%9A%84%E5%93%8D%E5%BA%94%5BRESPONSES_TYPES%5D%E4%BB%A5%5BSPLIT%5D%E5%88%86%E5%89%B2%22%2C%22_downlink%20max%20speed%20in%20mb%2Fs%22%3A%22%E6%9C%80%E5%A4%A7%E4%B8%8B%E8%A1%8C%E9%80%9F%E5%BA%A6%20mb%2Fs%22%2C%22_downlink%20speed%20in%20mb%2Fs%22%3A%22%E4%B8%8B%E8%A1%8C%E9%80%9F%E5%BA%A6%20mb%2Fs%22%2C%22_get%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22%E8%8E%B7%E5%8F%96%5BUSER_URL%5D%E7%9A%84%E5%93%8D%E5%BA%94%5BRESPONSES_TYPES%5D%E4%BB%A5%5BSPLIT%5D%E5%88%86%E5%89%B2%22%2C%22_network%20generation%22%3A%22%E7%BD%91%E7%BB%9C%E4%BB%A3%E9%99%85%22%2C%22_network%20type%22%3A%22%E7%BD%91%E7%BB%9C%E7%B1%BB%E5%9E%8B%22%2C%22_open%20%5BUSER_URL%5D%20in%20new%20tab%22%3A%22%E5%9C%A8%E6%96%B0%E6%A0%87%E7%AD%BE%E9%A1%B5%E6%89%93%E5%BC%80%5BUSER_URL%5D%22%2C%22_open%20%5BUSER_URL%5D%20in%20new%20window%20with%20width%3A%20%5BWIDTH%5D%20height%3A%20%5BHEIGHT%5D%20left%3A%20%5BLEFT%5D%20top%3A%20%5BTOP%5D%22%3A%22%E5%9C%A8%E6%96%B0%E7%AA%97%E5%8F%A3%E6%89%93%E5%BC%80%5BUSER_URL%5D%20%E5%AE%BD%3A%20%5BWIDTH%5D%20%E9%AB%98%3A%20%5BHEIGHT%5D%20%E5%B7%A6%3A%20%5BLEFT%5D%20%E4%B8%8A%3A%20%5BTOP%5D%22%2C%22_patch%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22patch%5BCONTENT_TYPE%5D%5BBODY%5D%E7%9A%84%5BUSER_URL%5D%E5%93%8D%E5%BA%94%5BRESPONSES_TYPES%5D%E4%BB%A5%5BSPLIT%5D%E5%88%86%E5%89%B2%22%2C%22_post%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22post%5BCONTENT_TYPE%5D%5BBODY%5D%E7%9A%84%5BUSER_URL%5D%E5%93%8D%E5%BA%94%5BRESPONSES_TYPES%5D%E4%BB%A5%5BSPLIT%5D%E5%88%86%E5%89%B2%22%2C%22_put%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%3A%22put%5BCONTENT_TYPE%5D%5BBODY%5D%E7%9A%84%5BUSER_URL%5D%E5%93%8D%E5%BA%94%5BRESPONSES_TYPES%5D%E4%BB%A5%5BSPLIT%5D%E5%88%86%E5%89%B2%22%2C%22_redirect%20this%20tab%20to%20%5BUSER_URL%5D%22%3A%22%E8%B7%B3%E8%BD%AC%E5%88%B0%5BUSER_URL%5D%22%2C%22_rtt%20in%20ms%22%3A%22%E5%BE%80%E8%BF%94%E6%97%B6%E5%BB%B6%20ms%22%7D%7D)%3B%2F*%20end%20generated%20l10n%20code%20*%2F((Scratch)%20%3D%3E%20%7B%0A%20%20%22use%20strict%22%3B%0A%0A%20%20const%20icon%20%3D%0A%20%20%20%20%22data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyB2aWV3Qm94PSIwLDAsMjI1LjM1NDgsMjI1LjM1NDgiIGhlaWdodD0iMjI1LjM1NDgiIHdpZHRoPSIyMjUuMzU0OCIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIj48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMTI3LjMyMjc0LC02Ny4zMjI2KSI%2BPGcgc3R5bGU9Im1peC1ibGVuZC1tb2RlOiBub3JtYWwiIHN0cm9rZS1kYXNob2Zmc2V0PSIwIiBzdHJva2UtZGFzaGFycmF5PSIiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIgc3Ryb2tlLWxpbmVjYXA9ImJ1dHQiIHN0cm9rZT0ibm9uZSIgZmlsbC1ydWxlPSJub256ZXJvIiBkYXRhLXBhcGVyLWRhdGE9InsmcXVvdDtpc1BhaW50aW5nTGF5ZXImcXVvdDs6dHJ1ZX0iPjxwYXRoIHN0cm9rZS13aWR0aD0iMCIgZmlsbD0iIzE0NjYwMCIgZD0iTTEyNy4zMjI3NSwxODBjMCwtNjIuMjMwMDEgNTAuNDQ3MzksLTExMi42Nzc0IDExMi42Nzc0LC0xMTIuNjc3NGM2Mi4yMzAwMSwwIDExMi42Nzc0LDUwLjQ0NzM5IDExMi42Nzc0LDExMi42Nzc0YzAsNjIuMjMwMDEgLTUwLjQ0NzM5LDExMi42Nzc0IC0xMTIuNjc3NCwxMTIuNjc3NGMtNjIuMjMwMDEsMCAtMTEyLjY3NzQsLTUwLjQ0NzM5IC0xMTIuNjc3NCwtMTEyLjY3NzR6Ij48L3BhdGg%2BPGcgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSIjZmZmZmZmIj48cGF0aCBkYXRhLXBhcGVyLWRhdGE9InsmcXVvdDtpbmRleCZxdW90OzpudWxsfSIgZD0iTTI2MS4zNjIzNSwxNDYuNjIzNTlsLTUuMTUwOTcsNS4yNzQ2MmwtMTMuMTg1NTEsLTEyLjIzOTg5bDE5LjIzNjg5LC0xOS40OTU4OWMxMC41OTE0NywtMTAuNTkxNDcgMjcuNzU4NCwtMTAuNTkxNDcgMzguMzQxMTIsMGwxMi43ODAzOCwxMi43ODAzOGMxMC41OTE0NywxMC41ODI3MSAxMC41OTE0NywyNy43NDk2NSAwLDM4LjM0MTEybC0zOC4zNDExMiwzOC4zNDExMmMtMTAuNTkxNDcsMTAuNTg2OTUgLTI3Ljc0OTY1LDEwLjU4Njk1IC0zOC4zNDExMiwwbC0xMi43ODAzNywtMTIuNzgwMzdsLTEyLjY3Mzc4LC0xMy4yMjYxMmwxMi4yNjMwNCwtMTIuNDMzbDI1Ljk3MTQ5LDI1LjY1OTEyYzMuNTIxNzQsMy41MjE3NCA5LjI1ODY0LDMuNTIxNzQgMTIuNzgwMzgsMGwzOC4zNDExMiwtMzguMzQxMTJjMy41MzA0OSwtMy41MzA0OSAzLjUzMDQ5LC05LjI1ODY0IDAsLTEyLjc4MDM4bC0xMi43ODAzNywtMTIuNzgwMzdjLTMuNTIxNzQsLTMuNTIxNzMgLTkuMjQ5ODgsLTMuNTMwNDkgLTEyLjc4MDM4LDBsLTEzLjY4MDc5LDEzLjY4MDc5eiI%2BPC9wYXRoPjxwYXRoIGRhdGEtcGFwZXItZGF0YT0ieyZxdW90O2luZGV4JnF1b3Q7Om51bGx9IiBkPSJNMjE4LjYzNzczLDIxMy4zNzY0bDUuMTUwOTcsLTUuMjc0NjJsMTMuMTg1NTEsMTIuMjM5ODlsLTE5LjIzNjg5LDE5LjQ5NTg5Yy0xMC41OTE0NywxMC41OTE0NyAtMjcuNzU4NCwxMC41OTE0NyAtMzguMzQxMTIsMGwtMTIuNzgwMzgsLTEyLjc4MDM4Yy0xMC41OTE0NywtMTAuNTgyNzEgLTEwLjU5MTQ3LC0yNy43NDk2NSAwLC0zOC4zNDExMWwzOC4zNDExMiwtMzguMzQxMTJjMTAuNTkxNDcsLTEwLjU4Njk1IDI3Ljc0OTY1LC0xMC41ODY5NSAzOC4zNDExMiwwbDEyLjc4MDM3LDEyLjc4MDM3bDEyLjY3Mzc4LDEzLjIyNjEybC0xMi4yNjMwNSwxMi40MzNsLTI1Ljk3MTQ4LC0yNS42NTkxMmMtMy41MjE3NCwtMy41MjE3NCAtOS4yNTg2NCwtMy41MjE3NCAtMTIuNzgwMzgsMGwtMzguMzQxMTIsMzguMzQxMTJjLTMuNTMwNDksMy41MzA0OSAtMy41MzA0OSw5LjI1ODY0IDAsMTIuNzgwMzhsMTIuNzgwMzcsMTIuNzgwMzdjMy41MjE3NCwzLjUyMTczIDkuMjQ5ODgsMy41MzA0OSAxMi43ODAzOCwwbDEzLjY4MDc5LC0xMy42ODA3OXoiPjwvcGF0aD48L2c%2BPC9nPjwvZz48L3N2Zz48IS0tcm90YXRpb25DZW50ZXI6MTEyLjY3NzI1NToxMTIuNjc3NDA1LS0%2B%22%3B%0A%0A%20%20const%20fetch_url%20%3D%20(%0A%20%20%20%20%7B%20USER_URL%2C%20BODY%2C%20CONTENT_TYPE%2C%20RESPONSES_TYPES%2C%20SPLIT%20%7D%2C%0A%20%20%20%20METHOD%0A%20%20)%20%3D%3E%20%7B%0A%20%20%20%20SPLIT%20%3D%20String(SPLIT)%3B%0A%20%20%20%20CONTENT_TYPE%20%3D%20Number(CONTENT_TYPE)%3B%0A%20%20%20%20RESPONSES_TYPES%20%3D%0A%20%20%20%20%20%20String(RESPONSES_TYPES)%0A%20%20%20%20%20%20%20%20.split(%22%20%22)%0A%20%20%20%20%20%20%20%20.filter((word)%20%3D%3E%20word%20!%3D%3D%20%22%22).length%20%3E%3D%201%0A%20%20%20%20%20%20%20%20%3F%20String(RESPONSES_TYPES)%0A%20%20%20%20%20%20%20%20%20%20%20%20.split(%22%20%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20.filter((word)%20%3D%3E%20word%20!%3D%3D%20%22%22)%0A%20%20%20%20%20%20%20%20%3A%20%5B%229%22%5D%3B%0A%20%20%20%20let%20single%20%3D%20METHOD%20%3D%3D%3D%20%22GET%22%20%7C%7C%20METHOD%20%3D%3D%3D%20%22DELETE%22%3B%0A%20%20%20%20return%20Scratch.fetch(String(USER_URL)%2C%20%7B%0A%20%20%20%20%20%20method%3A%20METHOD%2C%0A%20%20%20%20%20%20headers%3A%20single%0A%20%20%20%20%20%20%20%20%3F%20%7B%7D%0A%20%20%20%20%20%20%20%20%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Content-Type%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20CONTENT_TYPE%20%3D%3D%3D%201%20%3F%20%22text%2Fplain%22%20%3A%20%22application%2Fjson%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20redirect%3A%20single%20%3F%20%22follow%22%20%3A%20%22follow%22%2C%0A%20%20%20%20%20%20body%3A%20CONTENT_TYPE%20%3D%3D%3D%201%20%3F%20String(BODY)%20%3A%20JSON.stringify(BODY)%2C%0A%20%20%20%20%7D)%0A%20%20%20%20%20%20.then((res)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20const%20responses%20%3D%20%5B%5D%3B%0A%20%20%20%20%20%20%20%20for%20(let%20i%20%3D%200%3B%20i%20%3C%3D%20RESPONSES_TYPES.length%20-%201%3B%20i%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20%20%20switch%20(Number(RESPONSES_TYPES%5Bi%5D))%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%201%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20responses.push(res.text())%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%202%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20responses.push(JSON.stringify(res.json()))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%203%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20responses.push(String(res.ok))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%204%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20responses.push(res.status)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%205%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20responses.push(res.statusText)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%206%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20responses.push(res.type)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%207%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20responses.push(String(res.redirected))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%208%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20responses.push(res.url)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%209%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20responses.push(single%20%3F%20res.url%20%3A%20String(res.bodyUsed))%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20return%20Promise.all(responses)%3B%0A%20%20%20%20%20%20%7D)%0A%20%20%20%20%20%20.then((arr)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20let%20responses%20%3D%20%22%22%3B%0A%20%20%20%20%20%20%20%20for%20(let%20i%20%3D%200%3B%20i%20%3C%3D%20RESPONSES_TYPES.length%20-%201%3B%20i%2B%2B)%20%7B%0A%20%20%20%20%20%20%20%20%20%20responses%20%2B%3D%20SPLIT%20%2B%20arr%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20return%20SPLIT%20%3D%3D%3D%20%22%22%20%3F%20responses%20%3A%20responses.slice(1)%3B%0A%20%20%20%20%20%20%7D)%0A%20%20%20%20%20%20.catch((err)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20console.error(err)%3B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D)%3B%0A%20%20%7D%3B%0A%0A%20%20class%20Network%20%7B%0A%20%20%20%20getInfo()%20%7B%0A%20%20%20%20%20%20return%20%7B%0A%20%20%20%20%20%20%20%20id%3A%20%22truefantomnetwork%22%2C%0A%20%20%20%20%20%20%20%20name%3A%20Scratch.translate(%22Network%22)%2C%0A%0A%20%20%20%20%20%20%20%20color1%3A%20%22%23146600%22%2C%0A%20%20%20%20%20%20%20%20color2%3A%20%22%23125C00%22%2C%0A%20%20%20%20%20%20%20%20color3%3A%20%22%23105200%22%2C%0A%0A%20%20%20%20%20%20%20%20menuIconURI%3A%20icon%2C%0A%0A%20%20%20%20%20%20%20%20blocks%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22connected_to_internet_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.BOOLEAN%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22connected%20to%20internet%3F%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22browser_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22browser%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22current_url_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22current%20url%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22network_type_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22network%20type%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22network_generation_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22network%20generation%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22downlink_speed_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22downlink%20speed%20in%20mb%2Fs%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22downlink_max_speed_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22downlink%20max%20speed%20in%20mb%2Fs%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22rtt_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22rtt%20in%20ms%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22get_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22get%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20USER_URL%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22https%3A%2F%2Fhttpbin.org%2Fget%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20RESPONSES_TYPES%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22only_url_response_type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20SPLIT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22%20%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22delete_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22delete%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20USER_URL%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22https%3A%2F%2Fhttpbin.org%2Fdelete%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20RESPONSES_TYPES%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22only_url_response_type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20SPLIT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22%20%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22post_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22post%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20USER_URL%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22https%3A%2F%2Fhttpbin.org%2Fpost%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20BODY%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20Scratch.translate(%22apple%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20CONTENT_TYPE%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22content_type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20RESPONSES_TYPES%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22response_type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20SPLIT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22%20%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22put_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22put%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20USER_URL%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22https%3A%2F%2Fhttpbin.org%2Fput%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20BODY%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20Scratch.translate(%22apple%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20CONTENT_TYPE%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22content_type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20RESPONSES_TYPES%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22response_type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20SPLIT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22%20%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22patch_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.REPORTER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22patch%20%5BCONTENT_TYPE%5D%20%5BBODY%5D%20to%20%5BUSER_URL%5D%20respond%20%5BRESPONSES_TYPES%5D%20split%20by%20%5BSPLIT%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20USER_URL%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22https%3A%2F%2Fhttpbin.org%2Fpatch%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20BODY%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20Scratch.translate(%22apple%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20CONTENT_TYPE%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22content_type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20RESPONSES_TYPES%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22response_type%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20SPLIT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22%20%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%22---%22%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22open_link_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22open%20%5BUSER_URL%5D%20in%20new%20tab%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20USER_URL%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22https%3A%2F%2Fextensions.turbowarp.org%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22open_window_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22open%20%5BUSER_URL%5D%20in%20new%20window%20with%20width%3A%20%5BWIDTH%5D%20height%3A%20%5BHEIGHT%5D%20left%3A%20%5BLEFT%5D%20top%3A%20%5BTOP%5D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20USER_URL%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22https%3A%2F%2Fextensions.turbowarp.org%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20WIDTH%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.NUMBER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22default%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20HEIGHT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.NUMBER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22default%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20LEFT%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.NUMBER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22default%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20TOP%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.NUMBER%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menu%3A%20%22default%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20opcode%3A%20%22redirect_link_block%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20blockType%3A%20Scratch.BlockType.COMMAND%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22redirect%20this%20tab%20to%20%5BUSER_URL%5D%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20arguments%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20USER_URL%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20type%3A%20Scratch.ArgumentType.STRING%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20defaultValue%3A%20%22https%3A%2F%2Fextensions.turbowarp.org%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%5D%2C%0A%0A%20%20%20%20%20%20%20%20menus%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20content_type%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(1)%20text%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22(2)%20json%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%222%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20only_url_response_type%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(1)%20text%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22(2)%20json%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%222%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(3)%20status%20ok%3F%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%223%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(4)%20status%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%224%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(5)%20status%20text%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%225%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(5%201)%20status%20text%20and%20text%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%225%201%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(6)%20type%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%226%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(6%204)%20type%20and%20status%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%226%204%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(7)%20redirected%3F%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%227%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22(8)%20url%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%228%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20response_type%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(1)%20text%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22(2)%20json%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%222%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(3)%20status%20ok%3F%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%223%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(4)%20status%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%224%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(5)%20status%20text%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%225%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(5%201)%20status%20text%20and%20text%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%225%201%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(6)%20type%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%226%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(6%204)%20type%20and%20status%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%226%204%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(7)%20redirected%3F%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%227%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20%22(8)%20url%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%228%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22(9)%20body%20used%3F%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%229%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20default%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20acceptReporters%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text%3A%20Scratch.translate(%22default%22)%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3A%20%22default%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20connected_to_internet_block()%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20return%20navigator.onLine%3B%0A%20%20%20%20%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20browser_block()%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20let%20has%20%3D%20(input)%20%3D%3E%20navigator.userAgent.includes(input)%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22Firefox%22))%20return%20%22firefox%22%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22SamsungBrowser%22))%20return%20%22samsung%20internet%22%3B%0A%20%20%20%20%20%20%20%20if%20((has(%22Opera%22)%20%7C%7C%20has(%22OPR%22))%20%26%26%20has(%22GX%22))%20return%20%22opera%20gx%22%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22Opera%22)%20%7C%7C%20has(%22OPR%22))%20return%20%22opera%22%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22Trident%22))%20return%20%22internet%20explorer%22%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22Edge%22))%20return%20%22legacy%22%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22Edg%22))%20return%20%22edge%22%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22YaBrowser%22)%20%7C%7C%20has(%22YaSearchBrowser%22))%20return%20%22yandex%22%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22Miui%22))%20return%20%22mi%20browser%22%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22UBrowser%22))%20return%20%22uc%20browser%22%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22Chrome%22))%20return%20%22chromium%22%3B%0A%20%20%20%20%20%20%20%20if%20(has(%22Safari%22))%20return%20%22safari%22%3B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20current_url_block()%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20return%20document.URL%20%7C%7C%20%22%22%3B%0A%20%20%20%20%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20network_type_block()%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20switch%20(navigator.connection.type)%20%7B%0A%20%20%20%20%20%20%20%20%20%20case%20%22bluetooth%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%22bluetooth%22%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%22cellular%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%22cellular%22%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%22ethernet%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%22ethernet%22%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%22wifi%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%22wi-fi%22%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%22wimax%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%22wimax%22%3B%0A%20%20%20%20%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20network_generation_block()%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20switch%20(navigator.connection.effectiveType)%20%7B%0A%20%20%20%20%20%20%20%20%20%20case%20%22slow-2g%22%3A%0A%20%20%20%20%20%20%20%20%20%20case%20%222g%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%222g%22%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%223g%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%223g%22%3B%0A%20%20%20%20%20%20%20%20%20%20case%20%224g%22%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%224g%22%3B%0A%20%20%20%20%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20downlink_speed_block()%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20return%20navigator.connection.downlink%20%7C%7C%20%22%22%3B%0A%20%20%20%20%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20downlink_max_speed_block()%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20return%20navigator.connection.downlinkMax%20%7C%7C%20%22%22%3B%0A%20%20%20%20%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20rtt_block()%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20return%20navigator.connection.rtt%20%7C%7C%20%22%22%3B%0A%20%20%20%20%20%20%7D%20catch%20(err)%20%7B%0A%20%20%20%20%20%20%20%20return%20%22%22%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20get_block(args)%20%7B%0A%20%20%20%20%20%20return%20fetch_url(args%2C%20%22GET%22)%3B%0A%20%20%20%20%7D%0A%20%20%20%20delete_block(args)%20%7B%0A%20%20%20%20%20%20return%20fetch_url(args%2C%20%22DELETE%22)%3B%0A%20%20%20%20%7D%0A%20%20%20%20post_block(args)%20%7B%0A%20%20%20%20%20%20return%20fetch_url(args%2C%20%22POST%22)%3B%0A%20%20%20%20%7D%0A%20%20%20%20put_block(args)%20%7B%0A%20%20%20%20%20%20return%20fetch_url(args%2C%20%22PUT%22)%3B%0A%20%20%20%20%7D%0A%20%20%20%20patch_block(args)%20%7B%0A%20%20%20%20%20%20return%20fetch_url(args%2C%20%22PATCH%22)%3B%0A%20%20%20%20%7D%0A%20%20%20%20open_link_block(%7B%20USER_URL%20%7D)%20%7B%0A%20%20%20%20%20%20Scratch.openWindow(USER_URL)%3B%0A%20%20%20%20%7D%0A%20%20%20%20open_window_block(%7B%20USER_URL%2C%20WIDTH%2C%20HEIGHT%2C%20LEFT%2C%20TOP%20%7D)%20%7B%0A%20%20%20%20%20%20let%20params%20%3D%20%22popup%3D1%22%3B%0A%20%20%20%20%20%20params%20%2B%3D%20isNaN(WIDTH)%0A%20%20%20%20%20%20%20%20%3F%20%22%22%0A%20%20%20%20%20%20%20%20%3A%20%60%2Cwidth%3D%24%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20Number(WIDTH)%20%3C%20100%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20100%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Number(WIDTH)%20%3E%20window.screen.width%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20window.screen.width%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Number(WIDTH)%0A%20%20%20%20%20%20%20%20%20%20%7D%60%3B%0A%20%20%20%20%20%20params%20%2B%3D%20isNaN(HEIGHT)%0A%20%20%20%20%20%20%20%20%3F%20%22%22%0A%20%20%20%20%20%20%20%20%3A%20%60%2Cheight%3D%24%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20Number(HEIGHT)%20%3C%20100%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20100%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Number(HEIGHT)%20%3E%20window.screen.height%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20window.screen.height%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Number(HEIGHT)%0A%20%20%20%20%20%20%20%20%20%20%7D%60%3B%0A%20%20%20%20%20%20params%20%2B%3D%20isNaN(LEFT)%0A%20%20%20%20%20%20%20%20%3F%20%22%22%0A%20%20%20%20%20%20%20%20%3A%20%60%2Cleft%3D%24%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20Number(LEFT)%20%3C%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Number(LEFT)%20%3E%20window.screen.width%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20window.screen.width%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Number(LEFT)%0A%20%20%20%20%20%20%20%20%20%20%7D%60%3B%0A%20%20%20%20%20%20params%20%2B%3D%20isNaN(TOP)%0A%20%20%20%20%20%20%20%20%3F%20%22%22%0A%20%20%20%20%20%20%20%20%3A%20%60%2Ctop%3D%24%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20Number(TOP)%20%3C%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Number(TOP)%20%3E%20window.screen.height%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20window.screen.height%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20Number(TOP)%0A%20%20%20%20%20%20%20%20%20%20%7D%60%3B%0A%20%20%20%20%20%20Scratch.openWindow(String(USER_URL)%2C%20params)%3B%0A%20%20%20%20%7D%0A%20%20%20%20redirect_link_block(%7B%20USER_URL%20%7D)%20%7B%0A%20%20%20%20%20%20Scratch.redirect(USER_URL)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20Scratch.extensions.register(new%20Network())%3B%0A%7D)(Scratch)%3B%0A%20%7D)(Scratch)%3B"]) {
        vm.extensionManager.loadExtensionURL(extension);
      }

    } catch (e) {
      handleError(e);
    }
  </script>
  
  
    <script>
      const getProjectData = (function() {
        const storage = scaffolding.storage;
        storage.onprogress = (total, loaded) => {
          setProgress(interpolate(0.2, 0.98, loaded / total));
        };
        
        storage.addWebStore(
          [
            storage.AssetType.ImageVector,
            storage.AssetType.ImageBitmap,
            storage.AssetType.Sound,
            storage.AssetType.Font
          ].filter(i => i),
          (asset) => new URL('./assets/' + asset.assetId + '.' + asset.dataFormat, location).href
        );
        return () => new Promise((resolve, reject) => {
        const xhr = new XMLHttpRequest();
        xhr.onload = () => {
          resolve(xhr.response);
        };
        xhr.onerror = () => {
          if (location.protocol === 'file:') {
            reject(new Error('Zip environment must be used from a website, not from a file URL.'));
          } else {
            reject(new Error('Request to load project data failed.'));
          }
        };
        xhr.onprogress = (e) => {
          if (e.lengthComputable) {
            setProgress(interpolate(0.1, 0.2, e.loaded / e.total));
          }
        };
        xhr.responseType = 'arraybuffer';
        xhr.open('GET', "./assets/project.json");
        xhr.send();
      });
      })();
    </script>
  <script>
    const run = async () => {
      const projectData = await getProjectData();
      await scaffolding.loadProject(projectData);
      setProgress(1);
      loadingScreen.hidden = true;
      if (true) {
        scaffolding.start();
      } else {
        launchScreen.hidden = false;
        launchScreen.addEventListener('click', () => {
          launchScreen.hidden = true;
          scaffolding.start();
        });
        launchScreen.focus();
      }
    };
    run().catch(handleError);
  </script>
</body>
</html>
